Pamoja 0.2.0

dotnet add package Pamoja --version 0.2.0
                    
NuGet\Install-Package Pamoja -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pamoja" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pamoja" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Pamoja" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pamoja --version 0.2.0
                    
#r "nuget: Pamoja, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pamoja@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pamoja&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Pamoja&version=0.2.0
                    
Install as a Cake Tool

Pamoja

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

documentation API reference

Install

dotnet add package Pamoja

What it installs

Each package name opens its reference.

Package What it covers
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.Core The transport every link shares (send, receive, subscribe, and a faulty wrapper for tests) and the runtime version
Pamoja.Core A link pamoja does not ship, written in your language against the transport contract and composed like any other
Pamoja.Security ed25519 device identity: sign a reading and verify it, so a gateway can prove it is authentic
Pamoja.Codec CBOR, JSON, and raw codecs behind one trait, and batch packing for metered links: delta and varint for integers, and a quantizer for f32 readings
Pamoja.Kit Plain-language helper math: smoothing, calibration, PID and thermostat control, a trigger with hysteresis, trend and surge prediction, rolling windows, unit conversions, geo, and robot motion
Pamoja.Serial SLIP and COBS byte stuffing with streaming decoders, so a UART byte stream carries discrete packets
Pamoja.Modbus Modbus RTU for RS485 field devices: a client that polls them over a serial port with the line's timing, simulated devices that answer as real ones do, and the frames with their CRC-16/MODBUS
Pamoja.Can CAN 2.0 and CAN FD frames with 11- and 29-bit identifiers, J1939 decode and compose, and a node on a bus, simulated or a Linux interface through SocketCAN
Pamoja.Gpio I2C address frames with reserved-range checks, the four SPI clock modes, active-high or active-low switches and contacts, and GPIO lines opened on a Linux board
Pamoja.Hal The embedded-hal traits every driver takes, a bit-banged 1-Wire bus, simulated parts and scripted buses that stand in for hardware, the Linux backends over i2c-dev, spidev, and the GPIO character device, one I2C bus and one serial port a program and its drivers share, and delays that sleep or only count
Pamoja.Sensors Datasheet-anchored drivers for eleven parts, from every language: the BME280, BMP280, DS18B20, HDC1080, INA219, INA226, ADS1115, OPT3001, SCD4x, SHT3x, and TMP117
Pamoja.Actuators A PCA9685 driver for servos, LEDs, and valves, and stepper drivers for four coil lines or a step and direction chip, in every language
Pamoja.Lora Time-on-air, duty-cycle off-time, the regional channel plans a LoRa node must keep to, and the link budget that sets its range
Pamoja.Lorawan LoRaWAN 1.0.x MAC framing, AES-CMAC and AES encryption, and both halves of the OTAA join
Pamoja.Radios The Semtech SX126x and SX127x LoRa radios and the SX1302 and SX1303 gateway concentrators: their commands, registers, and decoders, the amplifier setting a regional EIRP ceiling allows, a duty-cycle guard, and simulated chips that stand in for a module
Pamoja.Gateway What a LoRaWAN gateway speaks: the Semtech packet forwarder protocol and the Basics Station protocol on both sides, the network side of a single site, and a bridge from the radio to the link that leaves it
Pamoja.Mesh Addressed, hop-limited, CRC-checked frames and duplicate suppression that floods a packet exactly once
Pamoja.Routing Reverse-path routing that learns the cheapest route from overheard traffic
Pamoja.Mavlink MAVLink v1 and v2 framing, signing, named message fields and enum values, and the mission, command, and offboard protocols
Pamoja.Audit A tamper-evident, hash-chained log; altering, reordering, or dropping a record breaks verification
Pamoja.Session X25519 key agreement, HKDF, and ChaCha20-Poly1305 with an anti-replay window, with no TLS stack
Pamoja.Update Signed firmware manifests, streaming image verification, and A/B slots that fall back on their own
Pamoja.Power Duty cycling and an energy-aware governor that stretches work as the battery drains and holds its mode against a wandering charge
Pamoja.Telemetry Observability that ships only what is worth the bytes as link cost rises, while counting everything
Pamoja.Mqtt An MQTT client with the topic and wildcard rules, acknowledged delivery, retained messages, a last will, and TLS, as the core transport
Pamoja.Coap A CoAP client and the server it reports to, over UDP, with confirmable delivery and observe
Pamoja.Loopback An in-process transport with topic matching, a fault injector, and outages on demand, for testing with no broker
Pamoja.Sync Offline-first queues in memory or on disk, bounded or not, the on-disk one surviving power loss, and the drain that forwards them in order when a link returns
Pamoja.Ladder Cheapest reachable link first, buffering to a store when every link is down
Pamoja.Bus An in-memory typed publish and subscribe event bus, with publishers that never wait and subscribers that count what they miss
Pamoja.Sim Noisy and replay sensors, a recording actuator, a simulated robot that dead-reckons its pose, and a link that loses sends on a pattern
Pamoja.Profile Named, ready-to-run device profiles from plain data or a JSON manifest, run as a node in every language
Pamoja.Profile 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 in every language, or judged reading by reading
Pamoja.Kit Wheel speeds for differential, skid-steer, car-like, and mecanum chassis, a two-link arm and Denavit-Hartenberg forward kinematics, odometry, waypoint guidance, a safety gate, and servo, ESC, and encoder conversions
Pamoja.Ros2 ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed
Pamoja.Zenoh Zenoh key expressions: validity, canonical form, matching, and whether two expressions share or cover keys

All of them run on Pamoja.Native, the compiled engine, which is one library whichever packages you install.

Documentation

  • The guides, one page per capability with the same example in Rust, TypeScript, Python, and C#.
  • The C# reference, generated from every package.

License

MIT

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 137 9/24/2026
0.1.18 159 9/11/2026
0.1.17 165 9/6/2026
0.1.16 173 9/5/2026
0.1.15 167 9/5/2026