ave-actors
Open-source actor framework for Rust with async message passing, supervision, event broadcasting, and event-sourced persistence.
This repository is the public home of the ave-actors workspace. It includes the core actor runtime, the persistence layer, and database backends for SQLite and RocksDB.
What it provides
- Typed actors built on Tokio
tell,ask, timeout-aware requests, and graceful shutdown- Parent/child actor hierarchies with supervision strategies
- Event broadcasting with subscriber sinks
- Event-sourced persistence with snapshots
- Pluggable storage backends
- Optional at-rest encryption for persisted data
Workspace crates
| Crate | Purpose |
|---|---|
ave-actors |
Aggregated crate that re-exports the main public API |
ave-actors-actor |
Actor runtime, actor system, paths, supervision, retries, sinks |
ave-actors-store |
Event-sourced persistence layer and backend traits |
ave-actors-sqlite |
SQLite backend for persistent actors |
ave-actors-rocksdb |
RocksDB backend for persistent actors |
Feature flags
| Feature | Default | Description |
|---|---|---|
sqlite |
Yes | Enables the SQLite backend and store re-exports |
rocksdb |
No | Enables the RocksDB backend |
export-sqlite |
No | Re-exports rusqlite |
export-rocksdb |
No | Re-exports rocksdb |
Quick start
The root crate re-exports the actor API, so you can start with a simple actor without importing subcrates directly.
use ;
use async_trait;
use CancellationToken;
;
;
;
async
Persistent actors
If you need event sourcing, use the persistence layer from the root crate or directly from ave-actors-store.
With the default sqlite feature, the root crate already re-exports:
PersistentActorLightPersistenceFullPersistenceDbManager,Collection,StateSqliteManager
For RocksDB:
[]
= { = "0.10.0", = ["rocksdb"] }
If you prefer finer control, depend on subcrates directly:
[]
= "0.4.0"
= "0.4.0"
= "0.4.0"
Which crate should I use?
- Use
ave-actorsif you want the simplest entry point and re-exports. - Use
ave-actors-actorif you only need the actor runtime. - Use
ave-actors-storeif you are implementing persistence or a custom backend. - Use
ave-actors-sqlitefor embedded single-node persistence. - Use
ave-actors-rocksdbfor higher write throughput or larger persistent workloads.
Documentation map
- Actor runtime:
actor/README.md - Persistence layer:
store/README.md - SQLite backend:
databases/sqlite_db/README.md - RocksDB backend:
databases/rocksdb_db/README.md
Development
Build the whole workspace:
Run all tests:
Format the workspace:
Open source
ave-actors is free and open-source software. You can use it, study it, modify it, and redistribute it under the terms of the Apache License 2.0.
License
This project is a fork of rush-rs, originally developed by Kore Ledger, SL, modified in 2025 by Averiun Ledger, SL, and distributed under the same Apache-2.0 license.