| Crates.io | feagi-state-manager |
| lib.rs | feagi-state-manager |
| version | 0.0.1-beta.4 |
| created_at | 2025-12-21 16:35:01.693267+00 |
| updated_at | 2026-01-25 21:45:23.860921+00 |
| description | Runtime state management for FEAGI - cross-platform, RTOS-compatible |
| homepage | https://feagi.org |
| repository | https://github.com/feagi/feagi-core |
| max_upload_size | |
| id | 1998262 |
| size | 88,198 |
Runtime state management for FEAGI - cross-platform, RTOS-compatible, and WASM-ready.
| Feature | std | no_std | wasm | wasm-threaded |
|---|---|---|---|---|
| Core atomics | ✅ | ✅ | ✅ | ✅ |
| Agent registry | ✅ | ✅ (fixed-size) | ✅ | ✅ |
| Cortical locks | ✅ | ✅ | ✅ | ✅ |
| Event streaming | crossbeam | heapless::spsc | Vec buffer | Web Workers |
| Persistence | File I/O | ❌ | IndexedDB | IndexedDB |
use feagi_state_manager::{StateManager, BurstEngineState};
// Create or attach to shared state
let state = StateManager::new()?;
// Lock-free read (<20ns)
let burst_state = state.get_burst_engine_state();
// Lock-free write (<30ns)
state.set_burst_engine_state(BurstEngineState::Running);
// Update statistics
state.set_neuron_count(1_000_000);
state.set_synapse_count(50_000_000);
use feagi_state_manager::{AgentInfo, AgentType};
// Register an agent (write-lock, rare operation)
let agent = AgentInfo::new(
"video_agent_01".into(),
AgentType::Sensory,
capabilities,
transport,
);
state.register_agent(agent)?;
// Get all agents (read-lock)
let agents = state.get_agents();
// Subscribe to state changes
let rx = state.subscribe_events();
loop {
match rx.recv() {
Ok(StateEvent::BurstEngineStateChanged(state)) => {
println!("Burst engine: {:?}", state);
}
Ok(StateEvent::AgentRegistered(id)) => {
println!("Agent connected: {}", id);
}
_ => {}
}
}
┌─────────────────────────────────────┐
│ Memory-Mapped Core State │ ← Lock-free atomic operations
│ (64-byte cache-line aligned) │ 5-20ns reads, 10-30ns writes
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Agent Registry │ ← Arc<RwLock> (read-optimized)
│ Cortical Lock Manager │ ← Wait-free algorithm
│ FCL Window Size Cache │ ← Rarely accessed
└─────────────────────────────────────┘
use parking_lot::RwLock;
use crossbeam::channel;
let registry = Arc::new(RwLock::new(AgentRegistry::new()));
let (tx, rx) = channel::bounded(1000);
use spin::RwLock;
use heapless::spsc::Queue;
let registry = RwLock::new(AgentRegistry::new());
let queue = Queue::<StateEvent, 128>::new();
use std::cell::RefCell;
let registry = RefCell::new(AgentRegistry::new());
// No locks needed - single-threaded!
use wasm_sync::Mutex;
let registry = Arc::new(Mutex::new(AgentRegistry::new()));
// Uses Atomics.wait/notify under the hood
| Operation | Target | Typical |
|---|---|---|
| State read | <20 ns | 5-15 ns |
| State write | <30 ns | 10-25 ns |
| Health check | <100 ms | 10-50 ms |
| Agent registration | <100 μs | 50-80 μs |
[dependencies]
feagi-state-manager = { version = "2.0", features = ["std"] }
Available features:
std (default): Standard Rust with full featuresno_std: RTOS/embedded targetswasm: WebAssembly (single-threaded)wasm-threaded: WebAssembly with Web Workerscargo build --release
cargo build --release --no-default-features --features no_std --target thumbv7em-none-eabihf
cargo build --release --no-default-features --features wasm --target wasm32-unknown-unknown
# Unit tests
cargo test
# Integration tests
cargo test --workspace
# Benchmarks
cargo bench
🚧 In Development - Core skeleton complete, implementation in progress.
See ARCHITECTURE.md for design principles and contribution guidelines.
Apache-2.0
feagi-types: Core data structures
feagi-burst-engine: NPU execution
feagi-brain-development: Neurogenesis
feagi-plasticity: Synaptic learning