Skip to main content

libcoapy

libcoapy project enables communication over the CoAP protocol (RFC 7252). The llapi module provides ctypes-based wrappers for the libcoap C library. The libcoapy module uses llapi to provide a high-level class interface to the libcoap functions.

Dependencies:

  • libcoap (v4.3.5 or higher is recommended)
  • ifaddr (optional, to query all IPs of an interface)
  • netifaces (optional alternative to ifaddr)

Status

The llapi module provides a complete interface for the current version of the libcoap library. The high-level API of libcoapy is still missing some parts and might change in the future.

Portability

libcoapy is a pure python module and the underlying libcoap supports several platforms like Linux, Windows, MacOS and Android. However, libcoap (and hence libcoapy) does not support all features on all platforms and with all possible SSL/TLS libraries.

If you want to use libcoapy with asyncio on platforms without epoll, like Windows, it might be necessary to choose an event loop that supports add_reader(). On Windows you might need to add this to your code before initializing the loop:

if sys.version_info[0] == 3 and sys.version_info[1] >= 8 and sys.platform.startswith('win'):
	asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

Provided tools

In the examples folder, this repo provides the following general-purpose tools:

  • coap-gui - a small Tkinter-based GUI to interact with a CoAP server
  • coarl - a CLI tool that provides a similar interface as curl

Documentation

API documentation: https://anyc.github.io/libcoapy/

Example: client

from libcoapy import *

if len(sys.argv) < 2:
	uri_str = "coap://localhost"
else:
	uri_str = sys.argv[1]

ctx = CoapContext()

session = ctx.newSession(uri_str)

def rx_cb(session, tx_msg, rx_msg, mid):
	print(rx_msg.payload)
	session.ctx.stop_loop()

session.sendMessage(path=".well-known/core", response_callback=rx_cb)

ctx.loop()

Example: server

from libcoapy import *

def echo_handler(resource, session, request, query, response):
	response.payload = request.payload

def time_handler(resource, session, request, query, response):
	import datetime
	now = datetime.datetime.now()
	response.payload = str(now)

ctx = CoapContext()
ctx.addEndpoint("coap://[::]")

time_rs = CoapResource(ctx, "time")
time_rs.addHandler(time_handler)
ctx.addResource(time_rs)

echo_rs = CoapResource(ctx, "echo")
echo_rs.addHandler(echo_handler)
ctx.addResource(echo_rs)

ctx.loop()

More examples can be found in the examples directory.

Release files for libcoapy 2026.5.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libcoapy 2026.5.6
File Size Uploaded
libcoapy-2026.5.6.tar.gz 36.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for libcoapy 2026.5.6
File Interpreter ABI Platform
libcoapy-2026.5.6-py3-none-any.whl Python 3 none any Details

Total release size: 77.1 kB

Release files / libcoapy-2026.5.6.tar.gz

Download URL libcoapy-2026.5.6.tar.gz
Size 36.7 kB
Tags Source
SHA-256 checksum
How to use checksums
23f06b500381df0a2721c91bd0b32b570e410f1d5e5ffe7d5d98e9a59efe8bd4
BLAKE2b-256 checksum
How to use checksums
fceaf8c96a270aeeceea5b22259c5289d0e9c92409b99d238cae28cfc2bfe26b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / libcoapy-2026.5.6-py3-none-any.whl

Download URL libcoapy-2026.5.6-py3-none-any.whl
Size 40.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c3b1ed34d1c95899074dc8c2be7dd4574b8886b9121f95bb3af7b5c4327b7c4
BLAKE2b-256 checksum
How to use checksums
8df9dc08eb187ed7c6b40bb2fa3e66b11bae3f5ea3cb295f49b9b8e2c3b28e46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page