Reusable Rust libraries for Linux. Primary target: Raspberry Pi CM4 on Ubuntu / Raspberry Pi OS. Domain-free — nothing here knows about agents, extensions, or any specific product.
For the design rationale and per-crate scope boundaries, see
docs/SCOPE.md.
| Crate | Purpose |
|---|---|
fs-bundle |
tar+zstd pack/unpack, file/dir CRUD, declarative tree scaffolding, POSIX permission helpers. |
net-info |
Network introspection (interfaces, IPs, gateway, DNS, public IP) plus configurator backends (NetworkManager, netplan, ifupdown). |
machine-id |
Stable per-machine identity: OS machine-id, Pi board serial, and a persisted node id — each tagged with how far it can be trusted. |
net-scan |
Generic async TCP host/port scanner — CIDR/range targets, bounded concurrency, pluggable identify probe. |
systemd-units |
Async wrapper around zbus_systemd for managing systemd units. Pure-Rust D-Bus. |
ufw |
Manage Ubuntu's UFW firewall via CLI shell-out. Typed Rule builder, parsed Status snapshot. |
pi-host |
Read-only Raspberry Pi hardware introspection: model, revision, serial, SoC temp, throttling, clocks, voltages, firmware. |
storage |
Disk and mount introspection: /proc/mounts, statvfs, /sys/block device classification (eMMC/SD/USB/NVMe). |
watchdog |
Linux hardware watchdog (/dev/watchdog) — set timeout, kick, magic close. |
gpio |
Pi GPIO/PWM/I²C/SPI/UART — thin re-export of rppal. |
journald |
Read systemd journal entries via journalctl --output=json. One-shot fetch and async follow. |
time-sync |
Async wrapper around systemd-timedated (timedate1 D-Bus) — NTP enable/sync, timezone, RTC mode. |
cargo new --lib crates/<name>(or copy an existing layout).- Add it to the
memberslist in the rootCargo.toml. - In the new crate, set shared fields with
workspace = true(version,edition,rust-version,license,publish) and pull common deps from[workspace.dependencies]. - Add a one-line entry to the table above and a section to
docs/SCOPE.mddescribing what's in/out of scope.