pamoja#
One memory-safe Rust core with bindings for TypeScript, Python, and C#, for the devices that watch and control the physical world: sensors, gateways, robots, and drones, built to run on cheap hardware with weak or no connectivity.
Every capability is a crate in Rust and a package in each binding, and every guide shows the same task in all four languages. The code in a guide is spliced from a test that runs in CI, so an example that stops working fails the build rather than the reader.
Start here#
cargo add pamoja # Rust
npm install pamoja # TypeScript and Node
pip install pamoja # Python
dotnet add package Pamoja # C# and .NETThat is the whole framework. To take less than all of it, and to see what a narrow build actually costs, read Install.
If you are here with a part in hand rather than a language in mind, Hardware lists what the drivers were written against, the buses and radios the crates implement, and the boards this is built and tested on. With a board on the desk, its page wires a sensor to it, turns the bus on, and runs a first program: Raspberry Pi, ESP32, or RP2040. The Raspberry Pi and ESP32 pages go on to drive a relay from a GPIO line and run a whole node, and the gateway page seats a concentrator card on a Linux host and listens to a whole band at once. Buses and links explains the buses and links themselves, from I2C to LoRa, and names the crate that carries each one's logic.
To see it run before reading anything, Examples lists every complete program and every guide's example in the four languages, all of which run in CI on every change. Profiles is the catalog of nodes written down as data, ready to load, and Community says how to add a profile, an example, a driver, or a board of your own.
What it covers#
Reference#
Every language has a full API reference, generated from its own source and hosted here. The page on this site names each package and links it to its page there.
| Language | Install | Reference |
|---|---|---|
| Rust | cargo add pamoja | Rust reference, every crate with its API pages, generated by rustdoc |
| TypeScript | npm install pamoja | TypeScript reference, every package with its API pages, generated by typedoc |
| Python | pip install pamoja | Python reference, every module with its API pages, generated by pdoc |
| C# | dotnet add package Pamoja | C# reference, every package with its API pages, generated by DocFX |