pamoja

Documentation

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#

Shell
cargo add pamoja                 # Rust
npm install pamoja               # TypeScript and Node
pip install pamoja               # Python
dotnet add package Pamoja        # C# and .NET

That 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.

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.

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.

LanguageInstallReference
Rustcargo add pamojaRust reference, every crate with its API pages, generated by rustdoc
TypeScriptnpm install pamojaTypeScript reference, every package with its API pages, generated by typedoc
Pythonpip install pamojaPython reference, every module with its API pages, generated by pdoc
C#dotnet add package PamojaC# reference, every package with its API pages, generated by DocFX

Edit this page on GitHub