• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

aiocoap/H25-Nov-2021-13,4059,130

aiocoap.egg-info/H03-May-2022-186144

contrib/H25-Nov-2021-2,2311,557

doc/H03-May-2022-1,150724

LICENSEH A D14-Nov-20171.1 KiB2117

MANIFEST.inH A D10-Feb-202194 76

NEWSH A D25-Nov-202119.7 KiB539404

PKG-INFOH A D25-Nov-20217.4 KiB186144

README.rstH A D25-Nov-20216.4 KiB152113

clientGET-observe.pyH A D11-Sep-20201.2 KiB4221

clientGET.pyH A D15-Aug-20211.1 KiB3719

clientPUT.pyH A D26-Jun-20201.3 KiB4119

server.pyH A D25-Nov-20214.5 KiB13589

setup.cfgH A D25-Nov-202138 53

setup.pyH A D25-Nov-20215.1 KiB14295

README.rst

1aiocoap -- The Python CoAP library
2==================================
3
4The aiocoap package is an implementation of CoAP, the `Constrained Application
5Protocol`_.
6
7It is written in Python 3 using its `native asyncio`_ methods to facilitate
8concurrent operations while maintaining an easy to use interface.
9
10aiocoap is originally based on txThings_. If you want to use CoAP in your
11existing Twisted application, or can not migrate to Python 3 yet, that is
12probably more useful to you than aiocoap.
13
14.. _`Constrained Application Protocol`: http://coap.technology/
15.. _`native asyncio`: https://docs.python.org/3/library/asyncio
16.. _txThings: https://github.com/siskin/txThings
17
18Usage
19-----
20
21For how to use the aiocoap library, have a look at the guidedtour_, or at
22the examples_ and tools_ provided.
23
24A full reference is available in the  `API documentation`_.
25
26All examples can be run directly from a source code copy. If you prefer to
27install it, the usual Python mechanisms apply (see installation_).
28
29.. _`API documentation`: http://aiocoap.readthedocs.io/en/latest/api.html
30
31Features / Standards
32--------------------
33
34This library supports the following standards in full or partially:
35
36* RFC7252_ (CoAP): Supported for clients and servers. Multicast is supported on
37  the server side, and partially for clients. DTLS is supported but experimental,
38  and lacking some security properties. No caching is done inside the library.
39* RFC7641_ (Observe): Basic support for clients and servers. Reordering,
40  re-registration, and active cancellation are missing.
41* RFC7959_ (Blockwise): Supported both for atomic and random access.
42* RFC8323_ (TCP, WebSockets): Supports CoAP over TCP, TLS, and WebSockets (both
43  over HTTP and HTTPS). The TLS parts are server-certificate only;
44  preshared, raw public keys and client certificates are not supported yet.
45* RFC7967_ (No-Response): Supported.
46* RFC8132_ (PATCH/FETCH): Types and codes known, FETCH observation supported.
47* draft-ietf-core-resource-directory_: A standalone resource directory
48  server is provided along with a library function to register at one. They
49  lack support for groups and security considerations, and are generally rather
50  simplistic.
51* RFC8613_ (OSCORE): Full support client-side; protected servers can be
52  implemented based on it but are not automatic yet.
53* draft-ietf-core-oscore-groupcomm-11_ (Group OSCORE): Supported for both group
54  and pairwise mode in groups that are fully known. (The lack of an implemented
55  joining or persistence mechanism makes this impractical for anything but
56  experimentation.)
57
58If something described by one of the standards but not implemented, it is
59considered a bug; please file at the `github issue tracker`_. (If it's not on
60the list or in the excluded items, file a wishlist item at the same location).
61
62.. _RFC7252: https://tools.ietf.org/html/rfc7252
63.. _RFC7641: https://tools.ietf.org/html/rfc7641
64.. _RFC7959: https://tools.ietf.org/html/rfc7959
65.. _RFC7967: https://tools.ietf.org/html/rfc7967
66.. _RFC8132: https://tools.ietf.org/html/rfc8132
67.. _RFC8323: https://tools.ietf.org/html/rfc8323
68.. _RFC8613: https://tools.ietf.org/html/rfc8613
69.. _draft-ietf-core-resource-directory: https://tools.ietf.org/html/draft-ietf-core-resource-directory-27
70.. _draft-ietf-core-oscore-groupcomm-11: https://tools.ietf.org/html/draft-ietf-core-oscore-groupcomm-11
71
72Dependencies
73------------
74
75Basic aiocoap works out of the box on Python_ 3.7 or newer (also works on
76PyPy3_). For full support (DTLS, OSCORE and link-format handling) follow the
77installation_ instructions as these require additional libraries.
78
79aiocoap provides different network backends for different platforms. The most
80featureful backend is available for Linux, but most operations work on BSDs,
81Windows and macOS as well. See the FAQ_ for more details.
82
83If your library depends on aiocoap, it should pick the required extras (as per
84installation_) and declare a dependency like ``aiocoap[linkheader,oscore] >= 0.4b2``.
85
86.. _Python: https://www.python.org/
87.. _PyPy3: http://pypy.org/
88.. _FAQ: http://aiocoap.readthedocs.io/en/latest/faq.html
89
90Development
91-----------
92
93aiocoap tries to stay close to PEP8_ recommendations and general best practice,
94and should thus be easy to contribute to.
95
96Bugs (ranging from "design goal" and "wishlist" to typos) are currently tracked
97in the `github issue tracker`_. Pull requests are welcome there; if you start
98working on larger changes, please coordinate on the issue tracker.
99
100Documentation is built using sphinx_ with ``./setup.py build_sphinx``; hacks
101used there are described in ``./doc/README.doc``.
102
103Unit tests are implemented in the ``./tests/`` directory and easiest run using
104tox_ (though still available through ``./setup.py test`` for the time being);
105complete test coverage is aimed for, but not yet complete (and might never be,
106as the error handling for pathological network partners is hard to trigger with
107a library designed not to misbehave). The tests are regularly run at the `CI
108suite at gitlab`_, from where `coverage reports`_ are available.
109
110.. _PEP8: http://legacy.python.org/dev/peps/pep-0008/
111.. _sphinx: http://sphinx-doc.org/
112.. _`github issue tracker`: https://github.com/chrysn/aiocoap/issues
113.. _`CI suite at gitlab`: https://gitlab.com/aiocoap/aiocoap/commits/master
114.. _`coverage reports`: https://aiocoap.gitlab.io/aiocoap/
115.. _tox: https://tox.readthedocs.io/
116
117Relevant URLs
118-------------
119
120* https://github.com/chrysn/aiocoap
121
122  This is where the latest source code can be found, and bugs can be reported.
123  Generally, this serves as the project web site.
124
125* http://aiocoap.readthedocs.org/
126
127  Online documentation built from the sources.
128
129* http://coap.technology/
130
131  Further general information on CoAP, the standard documents involved, and
132  other implementations and tools available.
133
134Licensing
135---------
136
137aiocoap is published under the MIT License, see LICENSE_ for details.
138
139When using aiocoap for a publication, please cite it according to the output of
140``./setup.py cite [--bibtex]``.
141
142Copyright (c) 2012-2014 Maciej Wasilak <http://sixpinetrees.blogspot.com/>,
143              2013-2014 Christian Amsüss <c.amsuess@energyharvesting.at>
144
145
146.. _guidedtour: http://aiocoap.readthedocs.io/en/latest/guidedtour.html
147.. _examples: http://aiocoap.readthedocs.io/en/latest/examples.html
148.. _tools: http://aiocoap.readthedocs.io/en/latest/tools.html
149.. _installation: http://aiocoap.readthedocs.io/en/latest/installation.html
150.. _`aiocoap module`: http://aiocoap.readthedocs.io/en/latest/module/aiocoap.html
151.. _LICENSE: LICENSE
152