aiocoap


Nameaiocoap JSON
Version 0.4.12 PyPI version JSON
download
home_pageNone
SummaryPython CoAP library
upload_time2024-11-28 11:59:31
maintainerNone
docs_urlNone
authorthe aiocoap contributors
requires_python>=3.10
licenseMIT
keywords coap asyncio iot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            aiocoap -- The Python CoAP library
==================================

The aiocoap package is an implementation of CoAP, the `Constrained Application
Protocol`_.

It is written in Python 3 using its `native asyncio`_ methods to facilitate
concurrent operations while maintaining an easy to use interface.

.. _`Constrained Application Protocol`: http://coap.space/
.. _`native asyncio`: https://docs.python.org/3/library/asyncio

Usage
-----

For how to use the aiocoap library, have a look at the guidedtour_, or at
the examples_ and tools_ provided.

A full reference is available in the  `API documentation`_.

All examples can be run directly from a source code copy. If you prefer to
install it, the usual Python mechanisms apply (see installation_).

.. _`API documentation`: http://aiocoap.readthedocs.io/en/latest/api.html

Features / Standards
--------------------

This library supports the following standards in full or partially:

* RFC7252_ (CoAP): Supported for clients and servers. Multicast is supported on
  the server side, and partially for clients. DTLS is supported but experimental,
  and lacking some security properties. No caching is done inside the library.
* RFC7641_ (Observe): Basic support for clients and servers. Reordering,
  re-registration, and active cancellation are missing.
* RFC7959_ (Blockwise): Supported both for atomic and random access.
* RFC8323_ (TCP, WebSockets): Supports CoAP over TCP, TLS, and WebSockets (both
  over HTTP and HTTPS). The TLS parts are server-certificate only;
  preshared, raw public keys and client certificates are not supported yet.
* RFC7967_ (No-Response): Supported.
* RFC8132_ (PATCH/FETCH): Types and codes known, FETCH observation supported.
* RFC9176_: A standalone resource directory
  server is provided along with a library function to register at one. They
  lack support for groups and security considerations, and are generally rather
  simplistic.
* RFC8613_ (OSCORE): Full support client-side; protected servers can be
  implemented based on it but are not automatic yet.
* draft-ietf-core-oscore-groupcomm-23_ (Group OSCORE): Supported for both group
  and pairwise mode in groups that are fully known. (The lack of an implemented
  joining or persistence mechanism makes this impractical for anything but
  experimentation.)
* RFC9528_ (EDHOC): Experimental and rudimentary support for configured peers
  using the lakers_ implementation.

If something described by one of the standards but not implemented, it is
considered a bug; please file at the `github issue tracker`_. (If it's not on
the list or in the excluded items, file a wishlist item at the same location).

.. _RFC7252: https://tools.ietf.org/html/rfc7252
.. _RFC7641: https://tools.ietf.org/html/rfc7641
.. _RFC7959: https://tools.ietf.org/html/rfc7959
.. _RFC7967: https://tools.ietf.org/html/rfc7967
.. _RFC8132: https://tools.ietf.org/html/rfc8132
.. _RFC8323: https://tools.ietf.org/html/rfc8323
.. _RFC8613: https://tools.ietf.org/html/rfc8613
.. _RFC9176: https://tools.ietf.org/html/rfc9176
.. _RFC9528: https://tools.ietf.org/html/rfc9528
.. _draft-ietf-core-oscore-groupcomm-23: https://tools.ietf.org/html/draft-ietf-core-oscore-groupcomm-23
.. _lakers: https://pypi.org/project/lakers-python/

Dependencies
------------

Basic aiocoap works out of the box on Python_ 3.10 or newer (also works on
PyPy3_). For full support (DTLS, OSCORE and link-format handling) follow the
installation_ instructions as these require additional libraries.

aiocoap provides different network backends for different platforms. The most
featureful backend is available for Linux, but most operations work on BSDs,
Windows and macOS as well. See the FAQ_ for more details.

If your library depends on aiocoap, it should pick the required extras (as per
installation_) and declare a dependency like ``aiocoap[linkheader,oscore] >= 0.4b2``.

.. _Python: https://www.python.org/
.. _PyPy3: http://pypy.org/
.. _FAQ: http://aiocoap.readthedocs.io/en/latest/faq.html

Development
-----------

aiocoap tries to stay close to PEP8_ recommendations and general best practice,
and should thus be easy to contribute to.

Bugs (ranging from "design goal" and "wishlist" to typos) are currently tracked
in the `github issue tracker`_. Pull requests are welcome there; if you start
working on larger changes, please coordinate on the issue tracker.

Documentation is built using sphinx_ with ``python3 -m sphinx doc/ ${TARGET}``;
hacks used there are described in ``./doc/README.doc``.

Unit tests are implemented in the ``./tests/`` directory and easiest run using
tox_ (but also available through ``python3 -m unittest`` to test the local environment);
complete test coverage is aimed for, but not yet complete (and might never be,
as the error handling for pathological network partners is hard to trigger with
a library designed not to misbehave). The tests are regularly run at the `CI
suite at codeberg`_, from where `coverage reports`_ are available.

.. _PEP8: http://legacy.python.org/dev/peps/pep-0008/
.. _sphinx: http://sphinx-doc.org/
.. _`github issue tracker`: https://github.com/chrysn/aiocoap/issues
.. _`CI suite at codeberg`: https://ci.codeberg.org/repos/12879
.. _`coverage reports`: https://aiocoap.codeberg.page/aiocoap/coverage/
.. _tox: https://tox.readthedocs.io/

Relevant URLs
-------------

* https://codeberg.org/aiocoap/aiocoap

  This is where the latest source code can be found.
  Generally, this serves as the project web site.

* http://aiocoap.readthedocs.org/

  Online documentation built from the sources.

* https://coap.space/

  Further general information on CoAP, the standard documents involved, and
  other implementations and tools available.

Licensing
---------

aiocoap is published under the MIT License, and follows the best practice of `reuse.software`_.
Files in ``aiocoap/util/vendored/`` may have different (but compatible and OSI approved) licenses.

When using aiocoap for a publication, please cite it according to the output of
``./setup.py cite [--bibtex]``.

Copyright Christian Amsüss and the aiocoap contributors.

aiocoap was originally based on txThings_ by Maciej Wasilak.
The full list of aiocoap contributors can be obtained from the version control history.

.. Any filtering by a mailmap would apply, but no need to state that unless we do get a mailmap.

.. _guidedtour: http://aiocoap.readthedocs.io/en/latest/guidedtour.html
.. _examples: http://aiocoap.readthedocs.io/en/latest/examples.html
.. _tools: http://aiocoap.readthedocs.io/en/latest/tools.html
.. _installation: http://aiocoap.readthedocs.io/en/latest/installation.html
.. _reuse.software: https://reuse.software/
.. _txThings: https://github.com/siskin/txThings

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aiocoap",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "coap, asyncio, iot",
    "author": "the aiocoap contributors",
    "author_email": "Christian Ams\u00fcss <chrysn@fsfe.org>",
    "download_url": "https://files.pythonhosted.org/packages/a2/16/a9167225339089b2c295cc37aa5a01f758d164c5cda591cc9d2976719196/aiocoap-0.4.12.tar.gz",
    "platform": null,
    "description": "aiocoap -- The Python CoAP library\n==================================\n\nThe aiocoap package is an implementation of CoAP, the `Constrained Application\nProtocol`_.\n\nIt is written in Python 3 using its `native asyncio`_ methods to facilitate\nconcurrent operations while maintaining an easy to use interface.\n\n.. _`Constrained Application Protocol`: http://coap.space/\n.. _`native asyncio`: https://docs.python.org/3/library/asyncio\n\nUsage\n-----\n\nFor how to use the aiocoap library, have a look at the guidedtour_, or at\nthe examples_ and tools_ provided.\n\nA full reference is available in the  `API documentation`_.\n\nAll examples can be run directly from a source code copy. If you prefer to\ninstall it, the usual Python mechanisms apply (see installation_).\n\n.. _`API documentation`: http://aiocoap.readthedocs.io/en/latest/api.html\n\nFeatures / Standards\n--------------------\n\nThis library supports the following standards in full or partially:\n\n* RFC7252_ (CoAP): Supported for clients and servers. Multicast is supported on\n  the server side, and partially for clients. DTLS is supported but experimental,\n  and lacking some security properties. No caching is done inside the library.\n* RFC7641_ (Observe): Basic support for clients and servers. Reordering,\n  re-registration, and active cancellation are missing.\n* RFC7959_ (Blockwise): Supported both for atomic and random access.\n* RFC8323_ (TCP, WebSockets): Supports CoAP over TCP, TLS, and WebSockets (both\n  over HTTP and HTTPS). The TLS parts are server-certificate only;\n  preshared, raw public keys and client certificates are not supported yet.\n* RFC7967_ (No-Response): Supported.\n* RFC8132_ (PATCH/FETCH): Types and codes known, FETCH observation supported.\n* RFC9176_: A standalone resource directory\n  server is provided along with a library function to register at one. They\n  lack support for groups and security considerations, and are generally rather\n  simplistic.\n* RFC8613_ (OSCORE): Full support client-side; protected servers can be\n  implemented based on it but are not automatic yet.\n* draft-ietf-core-oscore-groupcomm-23_ (Group OSCORE): Supported for both group\n  and pairwise mode in groups that are fully known. (The lack of an implemented\n  joining or persistence mechanism makes this impractical for anything but\n  experimentation.)\n* RFC9528_ (EDHOC): Experimental and rudimentary support for configured peers\n  using the lakers_ implementation.\n\nIf something described by one of the standards but not implemented, it is\nconsidered a bug; please file at the `github issue tracker`_. (If it's not on\nthe list or in the excluded items, file a wishlist item at the same location).\n\n.. _RFC7252: https://tools.ietf.org/html/rfc7252\n.. _RFC7641: https://tools.ietf.org/html/rfc7641\n.. _RFC7959: https://tools.ietf.org/html/rfc7959\n.. _RFC7967: https://tools.ietf.org/html/rfc7967\n.. _RFC8132: https://tools.ietf.org/html/rfc8132\n.. _RFC8323: https://tools.ietf.org/html/rfc8323\n.. _RFC8613: https://tools.ietf.org/html/rfc8613\n.. _RFC9176: https://tools.ietf.org/html/rfc9176\n.. _RFC9528: https://tools.ietf.org/html/rfc9528\n.. _draft-ietf-core-oscore-groupcomm-23: https://tools.ietf.org/html/draft-ietf-core-oscore-groupcomm-23\n.. _lakers: https://pypi.org/project/lakers-python/\n\nDependencies\n------------\n\nBasic aiocoap works out of the box on Python_ 3.10 or newer (also works on\nPyPy3_). For full support (DTLS, OSCORE and link-format handling) follow the\ninstallation_ instructions as these require additional libraries.\n\naiocoap provides different network backends for different platforms. The most\nfeatureful backend is available for Linux, but most operations work on BSDs,\nWindows and macOS as well. See the FAQ_ for more details.\n\nIf your library depends on aiocoap, it should pick the required extras (as per\ninstallation_) and declare a dependency like ``aiocoap[linkheader,oscore] >= 0.4b2``.\n\n.. _Python: https://www.python.org/\n.. _PyPy3: http://pypy.org/\n.. _FAQ: http://aiocoap.readthedocs.io/en/latest/faq.html\n\nDevelopment\n-----------\n\naiocoap tries to stay close to PEP8_ recommendations and general best practice,\nand should thus be easy to contribute to.\n\nBugs (ranging from \"design goal\" and \"wishlist\" to typos) are currently tracked\nin the `github issue tracker`_. Pull requests are welcome there; if you start\nworking on larger changes, please coordinate on the issue tracker.\n\nDocumentation is built using sphinx_ with ``python3 -m sphinx doc/ ${TARGET}``;\nhacks used there are described in ``./doc/README.doc``.\n\nUnit tests are implemented in the ``./tests/`` directory and easiest run using\ntox_ (but also available through ``python3 -m unittest`` to test the local environment);\ncomplete test coverage is aimed for, but not yet complete (and might never be,\nas the error handling for pathological network partners is hard to trigger with\na library designed not to misbehave). The tests are regularly run at the `CI\nsuite at codeberg`_, from where `coverage reports`_ are available.\n\n.. _PEP8: http://legacy.python.org/dev/peps/pep-0008/\n.. _sphinx: http://sphinx-doc.org/\n.. _`github issue tracker`: https://github.com/chrysn/aiocoap/issues\n.. _`CI suite at codeberg`: https://ci.codeberg.org/repos/12879\n.. _`coverage reports`: https://aiocoap.codeberg.page/aiocoap/coverage/\n.. _tox: https://tox.readthedocs.io/\n\nRelevant URLs\n-------------\n\n* https://codeberg.org/aiocoap/aiocoap\n\n  This is where the latest source code can be found.\n  Generally, this serves as the project web site.\n\n* http://aiocoap.readthedocs.org/\n\n  Online documentation built from the sources.\n\n* https://coap.space/\n\n  Further general information on CoAP, the standard documents involved, and\n  other implementations and tools available.\n\nLicensing\n---------\n\naiocoap is published under the MIT License, and follows the best practice of `reuse.software`_.\nFiles in ``aiocoap/util/vendored/`` may have different (but compatible and OSI approved) licenses.\n\nWhen using aiocoap for a publication, please cite it according to the output of\n``./setup.py cite [--bibtex]``.\n\nCopyright Christian Ams\u00fcss and the aiocoap contributors.\n\naiocoap was originally based on txThings_ by Maciej Wasilak.\nThe full list of aiocoap contributors can be obtained from the version control history.\n\n.. Any filtering by a mailmap would apply, but no need to state that unless we do get a mailmap.\n\n.. _guidedtour: http://aiocoap.readthedocs.io/en/latest/guidedtour.html\n.. _examples: http://aiocoap.readthedocs.io/en/latest/examples.html\n.. _tools: http://aiocoap.readthedocs.io/en/latest/tools.html\n.. _installation: http://aiocoap.readthedocs.io/en/latest/installation.html\n.. _reuse.software: https://reuse.software/\n.. _txThings: https://github.com/siskin/txThings\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python CoAP library",
    "version": "0.4.12",
    "project_urls": {
        "changelog": "https://codeberg.org/aiocoap/aiocoap/src/branch/main/NEWS.rst",
        "documentation": "https://aiocoap.readthedocs.org/",
        "homepage": "https://christian.amsuess.com/tools/aiocoap/",
        "repository": "https://codeberg.org/aiocoap/aiocoap"
    },
    "split_keywords": [
        "coap",
        " asyncio",
        " iot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "df8726a8af685d9354b55202948528684483d24b0e5d58c5d1f8ec3aabdf64ee",
                "md5": "b7a82364470de17bb0c8f0556f806ae2",
                "sha256": "c7199776696e37bf7103eef19031b8426cc5476ed57bb3991c0a8093cf7a745a"
            },
            "downloads": -1,
            "filename": "aiocoap-0.4.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b7a82364470de17bb0c8f0556f806ae2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 234355,
            "upload_time": "2024-11-28T11:59:29",
            "upload_time_iso_8601": "2024-11-28T11:59:29.318079Z",
            "url": "https://files.pythonhosted.org/packages/df/87/26a8af685d9354b55202948528684483d24b0e5d58c5d1f8ec3aabdf64ee/aiocoap-0.4.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a216a9167225339089b2c295cc37aa5a01f758d164c5cda591cc9d2976719196",
                "md5": "a79e7c7586cbb9056743683eb9bbaef9",
                "sha256": "808e87068aa57dbf31486cfdfa9098b0a6f5ca444c6b8966f3e50a403628981e"
            },
            "downloads": -1,
            "filename": "aiocoap-0.4.12.tar.gz",
            "has_sig": false,
            "md5_digest": "a79e7c7586cbb9056743683eb9bbaef9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 295787,
            "upload_time": "2024-11-28T11:59:31",
            "upload_time_iso_8601": "2024-11-28T11:59:31.808267Z",
            "url": "https://files.pythonhosted.org/packages/a2/16/a9167225339089b2c295cc37aa5a01f758d164c5cda591cc9d2976719196/aiocoap-0.4.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-28 11:59:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": true,
    "codeberg_user": "aiocoap",
    "codeberg_project": "aiocoap",
    "lcname": "aiocoap"
}
        
Elapsed time: 0.44852s