Skip to main content

pamoja

The whole pamoja framework in one package: every capability of one memory-safe Rust core, behind an idiomatic Python facade, for IoT, robotics, and drones. Each capability is also its own distribution, so an application that needs one thing can depend on pamoja-mqtt alone; this package depends on all of them.

documentation API reference

Install

pip install pamoja
from pamoja import mqtt, security

What it installs

Each module name opens its reference.

Distribution Module What it covers
pamoja-security pamoja.security ed25519 device identity: sign a reading and verify it, so a gateway can prove it is authentic
pamoja-codec pamoja.codec CBOR, JSON, and raw codecs behind one trait, delta and varint batch packing, and an f32 quantizer for metered links
pamoja-kit pamoja.kit Plain-language helper math: smoothing, calibration, PID and thermostat control, a trigger with hysteresis, trend and surge prediction, rolling windows, kinematics, and geo
pamoja-serial pamoja.serial SLIP and COBS byte stuffing with streaming decoders, so a UART byte stream carries discrete packets
pamoja-modbus pamoja.modbus Modbus RTU requests and replies with CRC-16/MODBUS for RS485 field devices
pamoja-can pamoja.can CAN 2.0 and CAN-FD frames with 11- and 29-bit identifiers, plus J1939 decode and compose
pamoja-gpio pamoja.gpio I2C address frames with reserved-range checks, the four SPI clock modes, and active-high or active-low pins
pamoja-core pamoja.core The embedded-hal traits every driver takes, a bit-banged 1-Wire bus, scripted buses that play a part's side of a conversation, and the Linux backends over i2c-dev, spidev, and the GPIO character device
pamoja-sensors pamoja.sensors Datasheet-anchored decoders for eleven parts: the BME280, BMP280, DS18B20, HDC1080, INA219, INA226, ADS1115, OPT3001, SCD4x, SHT3x, and TMP117
pamoja-actuators pamoja.actuators PCA9685 PWM and servo pulses, and stepper coil sequencing
pamoja-core pamoja.core A sensor and an actuator pamoja has never heard of, written against the core traits, run against a rule, and published with nothing plugged in
pamoja-lora pamoja.lora Time-on-air, duty-cycle off-time, and the regional channel plans a LoRa node must keep to
pamoja-lorawan pamoja.lorawan LoRaWAN 1.0.x MAC framing, AES-CMAC and AES encryption, and both halves of the OTAA join
pamoja-mesh pamoja.mesh Addressed, hop-limited, CRC-checked frames and duplicate suppression that floods a packet exactly once
pamoja-routing pamoja.routing Reverse-path routing that learns the cheapest route from overheard traffic
pamoja-mavlink pamoja.mavlink MAVLink v1 and v2 framing, signing, named message fields, and the mission, command, and offboard protocols
pamoja-audit pamoja.audit A tamper-evident, hash-chained log; altering, reordering, or dropping a record breaks verification
pamoja-session pamoja.session X25519 key agreement, HKDF, and ChaCha20-Poly1305 with an anti-replay window, with no TLS stack
pamoja-update pamoja.update Signed firmware manifests, streaming image verification, and A/B slots that fall back on their own
pamoja-power pamoja.power Duty cycling and an energy-aware governor that stretches work as the battery drains
pamoja-telemetry pamoja.telemetry Observability that ships only what is worth the bytes as link cost rises, while counting everything
pamoja-mqtt pamoja.mqtt An MQTT client with the topic and wildcard rules, as the core transport
pamoja-coap pamoja.coap A CoAP client over UDP with confirmable delivery and observe
pamoja-loopback pamoja.loopback An in-process transport with topic matching and a fault injector, for testing with no broker
pamoja-sync pamoja.sync Offline-first queues: in memory, and a crash-safe on-disk queue that survives power loss
pamoja-ladder pamoja.ladder Cheapest reachable link first, buffering to a store when every link is down
pamoja-bus pamoja.bus An in-memory typed publish and subscribe event bus
pamoja-core pamoja.core The transport every link shares (send, receive, subscribe, and a faulty wrapper for tests) and the runtime version
pamoja-core pamoja.core A link pamoja does not ship, written in your language against the transport contract and composed like any other
pamoja-sim pamoja.sim Noisy and replay sensors, a recording actuator, and a simulated robot that dead-reckons its pose
pamoja-profile pamoja.profile Named, ready-to-run device profiles from plain data or a JSON manifest
pamoja-kit pamoja.kit Rules between nodes as a file: a condition over one node's topic with hysteresis, and the actions that drive another node's actuator or publish, run by an engine off any link
pamoja-ros2 pamoja.ros2 ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed
pamoja-zenoh pamoja.zenoh Zenoh key expressions: validity, canonical form, and wildcard matching

All of them run on pamoja-native, the compiled engine, which is one extension whichever distributions you install.

Documentation

License

MIT

Release files for pamoja 0.1.18

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

Source distribution (sdist)

Source distribution for pamoja 0.1.18
File Size Uploaded
pamoja-0.1.18.tar.gz 4.8 kB Details

Built distribution (wheel)

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

Total release size: 9.6 kB

Release files / pamoja-0.1.18.tar.gz

Download URL pamoja-0.1.18.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ec653e2a2b3b002c02d52e1273741762a84c1059c96594fbc42838d220054d2b
BLAKE2b-256 checksum
How to use checksums
8906d168eb8859320fb5a6696c2fcab74a9a5c159b688ce23a8c805106824b6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / pamoja-0.1.18-py3-none-any.whl

Download URL pamoja-0.1.18-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7e603e05dbb0c2cc3b070ffa8bf39a7a4b2af8dd0add06f2ab94e1a90ea6381
BLAKE2b-256 checksum
How to use checksums
a5bdab755b52bf5c1af4c7dfef70a3513f4b57af43194d24b14a0a51348aa7b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.18 This release

2 release files

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