| Crates.io | aingle_minimal |
| lib.rs | aingle_minimal |
| version | 0.3.0 |
| created_at | 2025-12-17 22:57:56.511098+00 |
| updated_at | 2025-12-23 22:13:04.089362+00 |
| description | Ultra-light AIngle node for IoT devices (<1MB RAM) |
| homepage | https://apilium.com |
| repository | https://github.com/ApiliumCode/aingle |
| max_upload_size | |
| id | 1991272 |
| size | 1,247,360 |
The Semantic Infrastructure for Intelligent Applications
Enabling enterprises to build secure, scalable, and intelligent distributed systems
Features • Quick Start • Platforms • ESP32 Setup • Website
Ultra-lightweight AIngle node for IoT devices with < 1MB RAM footprint. Supports ESP32, Raspberry Pi, and desktop platforms.
| Feature | Description | Use Case |
|---|---|---|
coap |
CoAP protocol (default) | IoT communication |
rest |
REST API server | SDK integration |
sqlite |
SQLite storage | Edge devices |
rocksdb |
RocksDB storage | High-performance |
ble |
Bluetooth LE (Desktop) | macOS/Linux/Windows |
ble-esp32 |
Bluetooth LE (ESP32) | Embedded IoT |
webrtc |
WebRTC transport | Browser nodes |
hw_wallet |
Ledger/Trezor support | Secure signing |
smart_agents |
HOPE AI agents | Edge intelligence |
# Cargo.toml
[dependencies]
aingle_minimal = "0.3"
use aingle_minimal::{MinimalNode, Config};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::iot_mode();
let mut node = MinimalNode::new(config)?;
smol::block_on(node.run())?;
Ok(())
}
Enable the rest feature to expose an HTTP API for SDK integration:
# Run with REST API on port 8080
aingle-minimal run --rest-port 8080
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/info |
Node information |
| POST | /api/v1/entries |
Create entry |
| GET | /api/v1/entries/:hash |
Get entry |
| GET | /api/v1/peers |
List peers |
| GET | /api/v1/stats |
Statistics |
| Language | Package |
|---|---|
| JavaScript | @apilium/aingle-sdk |
| Python | aingle-sdk |
| Go | aingle-sdk-go |
| Swift | AIngleSDK |
| Kotlin | aingle-sdk |
| Platform | Target | BLE Feature |
|---|---|---|
| macOS | aarch64-apple-darwin |
ble |
| Linux | x86_64-unknown-linux-gnu |
ble |
| Windows | x86_64-pc-windows-msvc |
ble |
| ESP32 | xtensa-esp32-espidf |
ble-esp32 |
| ESP32-C3 | riscv32imc-esp-espidf |
ble-esp32 |
| ESP32-S3 | xtensa-esp32s3-espidf |
ble-esp32 |
To compile for ESP32 with Bluetooth LE:
# Install espup (ESP Rust toolchain installer)
cargo install espup
espup install
# Source the environment (add to .bashrc/.zshrc)
. $HOME/export-esp.sh
sdkconfig.defaults# Required for BLE
CONFIG_BT_ENABLED=y
CONFIG_BT_BLE_ENABLED=y
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
# Optional: Persist bonding info
CONFIG_BT_NIMBLE_NVS_PERSIST=y
# For ESP32
cargo build --target xtensa-esp32-espidf --features ble-esp32
# For ESP32-C3 (RISC-V)
cargo build --target riscv32imc-esp-espidf --features ble-esp32
# For ESP32-S3
cargo build --target xtensa-esp32s3-espidf --features ble-esp32
espflash flash target/xtensa-esp32-espidf/release/your-app
| Component | Budget |
|---|---|
| Runtime | 128KB |
| Crypto | 64KB |
| Network | 128KB |
| Storage | 128KB |
| App | 64KB |
| Total | 512KB |
Apache 2.0 - See LICENSE