Post-quantum secure operating system for edge devices. Written in Rust.
Qbitel EdgeOS is a no_std Rust operating system purpose-built for securing critical infrastructure at the edge. It ships NIST-standardized post-quantum cryptography, hardware-bound device identity, secure boot, and mesh networking — everything needed to protect embedded systems against both classical and quantum-era threats.
Status:
v0.1.0— Active development. APIs may change before 1.0.
The quantum computing threat to embedded systems is not theoretical — it is a timeline problem. Devices deployed today in power grids, railways, and defense networks will still be operating when cryptographically-relevant quantum computers arrive. Qbitel EdgeOS solves this now.
- Quantum-ready from day one. ML-KEM-768, ML-DSA-65, FN-DSA-512, SHA3-256, AES-256-GCM — all NIST FIPS 203/204 compliant.
- No heap, no std, no compromise. Pure
no_stdRust. All crypto runs in constant-time. Secrets are zeroized on drop. Integer overflow checks are on in release builds. - Hardware-rooted trust. Device identity is anchored to PUF/eFUSE silicon roots. No certificates. No cloud dependency. No revocation servers.
- Built for air-gapped environments. Mesh networking over LoRa, 802.15.4, and BLE. OTA updates with A/B slots and rollback. Offline-first by design.
- Runs on real hardware. Primary targets: STM32H7 (Cortex-M7), STM32U5 (Cortex-M33), SiFive FE310 (RISC-V). 512KB flash, 128KB RAM minimum.
+---------------------------------------------------------------+
| q-update | q-recover | q-attest | q-mesh |
| Secure OTA | Key Rotation| Attestation | Mesh Networking |
+---------------------------------------------------------------+
| q-identity | q-crypto |
| Hardware-Bound Identity | Post-Quantum Crypto Engine |
+---------------------------------------------------------------+
| q-kernel |
| Preemptive Scheduler | IPC | MPU/PMP Isolation | Syscalls |
+---------------------------------------------------------------+
| q-hal |
| STM32H7 (Cortex-M7) | STM32U5 (Cortex-M33) | RISC-V |
+---------------------------------------------------------------+
| q-boot |
| Secure Boot | Signature Verification | Anti-Rollback |
+---------------------------------------------------------------+
# Clone
git clone https://github.com/yazhsab/qbitel-edgeos.git
cd qbitel-edgeos
# Install embedded targets
rustup target add thumbv7em-none-eabihf # STM32H7
rustup target add thumbv8m.main-none-eabihf # STM32U5
rustup target add riscv32imac-unknown-none-elf # RISC-V
# Build for STM32H7
cargo build --release --target thumbv7em-none-eabihf --features stm32h7
# Run tests (host)
cargo test --workspace --all-features
# Or use Docker for reproducible builds
docker compose run builder| Crate | What it does |
|---|---|
| q-boot | Secure bootloader — Dilithium-3 signature verification, anti-rollback counter, A/B slot selection |
| q-kernel | Microkernel — preemptive round-robin scheduler, IPC channels, MPU/PMP task isolation, syscall interface |
| q-crypto | Crypto engine — ML-KEM-768, ML-DSA-65, FN-DSA-512, SHA3-256, AES-256-GCM, HKDF, constant-time ops |
| q-hal | Hardware abstraction — GPIO, UART, SPI, I2C, RNG, flash for STM32H7/U5 and RISC-V |
| q-identity | Device identity — PUF/eFUSE hardware binding, certificate-less identity, key hierarchy |
| q-attest | Attestation — supply chain tracking with hash-linked ledger, runtime integrity verification |
| q-update | OTA updates — A/B partition management, differential updates, air-gap support |
| q-recover | Key recovery — Shamir secret sharing over GF(2^8), threshold-based key rotation |
| q-mesh | Mesh networking — post-quantum secured handshake, LoRa/802.15.4/BLE transport |
| q-common | Shared primitives — error types, logging, time, configuration, constants |
| Platform | MCU | Architecture | Flash / RAM | Status |
|---|---|---|---|---|
| STM32H743/753 | Cortex-M7 @ 480MHz | thumbv7em-none-eabihf |
2MB / 1MB | Primary |
| STM32U585 | Cortex-M33 @ 160MHz | thumbv8m.main-none-eabihf |
2MB / 786KB | Primary |
| SiFive FE310 | RV32IMAC @ 320MHz | riscv32imac-unknown-none-elf |
16MB / 16KB | Secondary |
Minimum requirements: 512KB flash, 128KB RAM, hardware TRNG, OTP/eFUSE storage.
| Algorithm | Standard | Use | Security Level |
|---|---|---|---|
| ML-KEM-768 (Kyber) | FIPS 203 | Key encapsulation | NIST Level 3 |
| ML-DSA-65 (Dilithium) | FIPS 204 | Digital signatures | NIST Level 3 |
| FN-DSA-512 (Falcon) | NIST Round 3 | Compact signatures | NIST Level 1 |
| SHA3-256 | FIPS 202 | Hashing | 128-bit |
| AES-256-GCM | FIPS 197 | Authenticated encryption | 256-bit |
| HKDF-SHA3-256 | RFC 5869 | Key derivation | 256-bit |
All cryptographic operations are constant-time. No secret-dependent branches or memory access patterns.
| Tool | Description |
|---|---|
| q-sign | CLI for firmware signing, manifest creation, and package building |
| q-provision | Factory provisioning — identity generation, key injection, device flashing |
# Install tools
pip install -e tools/q-sign
pip install -e tools/q-provision
# Sign a firmware image
q-sign sign --algorithm dilithium3 --key keys/firmware_signer --image firmware.bin
# Provision a device
q-provision identity --manufacturer-id MFG001 --device-class smart-meter| Example | Description | Features |
|---|---|---|
| smart-meter | Energy metering with secure telemetry | OTA updates, attestation |
| railway-signaling | SIL4 safety-critical signaling controller | Redundancy, fail-safe |
| border-sensor | Mesh sensor grid with offline operation | Mesh networking, low power |
- Rust 1.82+ (stable)
- Python 3.10+ (for tools)
- probe-rs or ST-Link (for flashing)
# Format
cargo fmt --all
# Lint
cargo clippy --workspace --all-features -- -D warnings
# Test everything
cargo test --workspace --all-features
# Crypto KAT (Known Answer Tests)
cargo test -p q-crypto --all-features -- kat
# Security audit
cargo audit && cargo deny check
# Python tool tests
cd tools/q-sign && pytest tests/ -v
cd tools/q-provision && pytest tests/ -vdocker compose run builder # Full build
docker compose run test # Run tests
docker compose run lint # Lint check
docker compose run audit # Security audit
docker compose run coverage # Coverage reportqbitel-edgeos/
├── crates/
│ ├── q-boot/ # Secure bootloader
│ ├── q-kernel/ # Microkernel
│ ├── q-crypto/ # Post-quantum crypto
│ ├── q-hal/ # Hardware abstraction
│ ├── q-identity/ # Device identity
│ ├── q-attest/ # Attestation
│ ├── q-update/ # OTA updates
│ ├── q-recover/ # Key recovery
│ ├── q-mesh/ # Mesh networking
│ └── q-common/ # Shared types
├── tools/
│ ├── q-sign/ # Firmware signing (Python)
│ └── q-provision/ # Device provisioning (Python)
├── examples/
│ ├── smart-meter/ # Energy metering demo
│ ├── railway-signaling/ # SIL4 signaling demo
│ └── border-sensor/ # Mesh sensor demo
├── deploy/
│ ├── terraform/ # AWS infrastructure
│ └── ansible/ # Fleet management playbooks
├── Cargo.toml # Workspace root
├── Dockerfile # Reproducible build env
└── docker-compose.yml # Dev/CI services
- NIST FIPS 203/204/202/197 — Post-quantum cryptographic standards
- Common Criteria EAL4+ — Security evaluation
- IEC 62443 — Industrial cybersecurity
- EN 50129 / EN 50159 — Railway safety & communication security
- IEC 62351 — Power grid security
| Document | Description |
|---|---|
| Product Overview | What Qbitel EdgeOS is, the problem it solves, and why it's different |
| Technical Walkthrough | End-to-end walkthrough of boot, identity, mesh, attestation, and updates |
| API Reference | Public API reference for all crates and CLI tools |
| Quickstart Guide | Get from zero to running firmware in under 10 minutes |
| Installation Guide | Full setup for Rust, Python, Docker, debug probes, and dev containers |
| Deployment Guide | Production deployment with Terraform, Ansible, signing, and OTA |
We welcome contributions! Please read CONTRIBUTING.md before submitting a pull request.
Quick version:
- Fork the repo and create a branch from
main - Write code, add tests, run
cargo fmt && cargo clippy && cargo test - Sign your commits with DCO (
git commit -s) - Open a PR with a clear description
Found a vulnerability? Do not open a public issue. See SECURITY.md for responsible disclosure instructions.
Apache License 2.0. See LICENSE for details.
Built with Rust. Secured with post-quantum cryptography. Designed for critical infrastructure.
GitHub ·
Issues ·
Discussions