All Projects → chrysn → Aiocoap

chrysn / Aiocoap

Licence: other
The Python CoAP library

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Aiocoap

automate-home
Yet another python home automation (iot) project. Because a smart light is more than just on or off.
Stars: ✭ 59 (-68.11%)
Mutual labels:  internet-of-things, asyncio
Californium
CoAP/DTLS Java Implementation
Stars: ✭ 521 (+181.62%)
Mutual labels:  coap, internet-of-things
aioesphomeapi
Python Client for ESPHome native API. Used by Home Assistant.
Stars: ✭ 52 (-71.89%)
Mutual labels:  internet-of-things, asyncio
zestdb
ZestDB
Stars: ✭ 18 (-90.27%)
Mutual labels:  coap, internet-of-things
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (+624.86%)
Mutual labels:  coap, internet-of-things
IoT-Technical-Guide
🐝 IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker)
Stars: ✭ 2,565 (+1286.49%)
Mutual labels:  coap, internet-of-things
Leshan
Eclipse Leshan is an OMA Lightweight M2M (LWM2M) implementation in Java.
Stars: ✭ 483 (+161.08%)
Mutual labels:  coap, internet-of-things
pyaiot
A set of Python services to interact and transport data from IoT devices
Stars: ✭ 29 (-84.32%)
Mutual labels:  coap, asyncio
Awalwm2m
Awa LWM2M is an implementation of the OMA Lightweight M2M protocol in C.
Stars: ✭ 93 (-49.73%)
Mutual labels:  coap, internet-of-things
Coapnet
CoAPnet is a high performance .NET library for CoAP based communication. It provides a CoAP client and a CoAP server. It also has DTLS support out of the box.
Stars: ✭ 23 (-87.57%)
Mutual labels:  coap, internet-of-things
Wakaama
Eclipse Wakaama is a C implementation of the Open Mobile Alliance's LightWeight M2M protocol (LWM2M).
Stars: ✭ 358 (+93.51%)
Mutual labels:  coap, internet-of-things
Iot Technical Guide
🐝 IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker)
Stars: ✭ 2,334 (+1161.62%)
Mutual labels:  coap, internet-of-things
Pytradfri
IKEA Trådfri/Tradfri API. Control and observe your lights from Python. Examples available. On pypi. Sans-io.
Stars: ✭ 778 (+320.54%)
Mutual labels:  asyncio, internet-of-things
Core
🏡 Open source home automation that puts local control and privacy first.
Stars: ✭ 48,265 (+25989.19%)
Mutual labels:  asyncio, internet-of-things
Designiot
教你设计物联网系统。构建自己的Internet of Things 。
Stars: ✭ 1,983 (+971.89%)
Mutual labels:  coap, internet-of-things
Spade
Smart Python Agent Development Environment
Stars: ✭ 176 (-4.86%)
Mutual labels:  asyncio
Home Assistant
Home-Assistant-Config
Stars: ✭ 182 (-1.62%)
Mutual labels:  internet-of-things
Gino
GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.
Stars: ✭ 2,299 (+1142.7%)
Mutual labels:  asyncio
Owllook
owllook-小说搜索引擎
Stars: ✭ 2,163 (+1069.19%)
Mutual labels:  asyncio
Paho.mqtt.android
MQTT Android
Stars: ✭ 2,334 (+1161.62%)
Mutual labels:  internet-of-things

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.

aiocoap is originally based on txThings_. If you want to use CoAP in your existing Twisted application, or can not migrate to Python 3 yet, that is probably more useful to you than aiocoap.

.. _Constrained Application Protocol: http://coap.technology/ .. _native asyncio: https://docs.python.org/3/library/asyncio .. _txThings: https://github.com/siskin/txThings

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 for clients, but 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.
  • draft-ietf-core-resource-directory_: 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-11_ (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.)

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 .. _draft-ietf-core-resource-directory: https://tools.ietf.org/html/draft-ietf-core-resource-directory-27 .. _draft-ietf-core-oscore-groupcomm-11: https://tools.ietf.org/html/draft-ietf-core-oscore-groupcomm-11

Dependencies

Basic aiocoap works out of the box on Python_ 3.7 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 ./setup.py build_sphinx; hacks used there are described in ./doc/README.doc.

Unit tests are implemented in the ./tests/ directory and easiest run using tox_ (though still available through ./setup.py test for the time being); 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 gitlab, 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 gitlab: https://gitlab.com/aiocoap/aiocoap/commits/master .. _coverage reports: https://aiocoap.gitlab.io/aiocoap/ .. _tox: https://tox.readthedocs.io/

Relevant URLs

Licensing

aiocoap is published under the MIT License, see LICENSE_ for details.

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

Copyright (c) 2012-2014 Maciej Wasilak http://sixpinetrees.blogspot.com/, 2013-2014 Christian Amsüss [email protected]

.. _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 .. _aiocoap module: http://aiocoap.readthedocs.io/en/latest/module/aiocoap.html .. _LICENSE: LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].