aingle_minimal

Crates.ioaingle_minimal
lib.rsaingle_minimal
version0.3.0
created_at2025-12-17 22:57:56.511098+00
updated_at2025-12-23 22:13:04.089362+00
descriptionUltra-light AIngle node for IoT devices (<1MB RAM)
homepagehttps://apilium.com
repositoryhttps://github.com/ApiliumCode/aingle
max_upload_size
id1991272
size1,247,360
Apilium (ApiliumCode)

documentation

https://docs.rs/aingle_minimal

README

AIngle

The Semantic Infrastructure for Intelligent Applications

Enabling enterprises to build secure, scalable, and intelligent distributed systems

Build Status License Rust

FeaturesQuick StartPlatformsESP32 SetupWebsite


AIngle Minimal

Ultra-lightweight AIngle node for IoT devices with < 1MB RAM footprint. Supports ESP32, Raspberry Pi, and desktop platforms.

Features

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

Quick Start

# 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(())
}

REST API & SDKs

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

Endpoints

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

Official SDKs

Language Package
JavaScript @apilium/aingle-sdk
Python aingle-sdk
Go aingle-sdk-go
Swift AIngleSDK
Kotlin aingle-sdk

Platform Support

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

ESP32 Setup

To compile for ESP32 with Bluetooth LE:

1. Install ESP Toolchain

# Install espup (ESP Rust toolchain installer)
cargo install espup
espup install

# Source the environment (add to .bashrc/.zshrc)
. $HOME/export-esp.sh

2. Create 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

3. Build

# 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

4. Flash

espflash flash target/xtensa-esp32-espidf/release/your-app

Memory Budget

Component Budget
Runtime 128KB
Crypto 64KB
Network 128KB
Storage 128KB
App 64KB
Total 512KB

License

Apache 2.0 - See LICENSE

Links

Commit count: 0

cargo fmt