Skip to content

Roadmap

swarmstate is built in verifiable milestones. Status below reflects what is shipped.

Milestone Scope Status
M0 Scaffolding - maturin project, Rust core, Python API, CI ✅ done
M1 Rust store - concurrent KV, msgpack codec, O(1) snapshots, incremental diffs, GIL released ✅ done
M2 HandoffGraph - conditional DAG, safe condition evaluator (no eval), deterministic route(), cycle detection ✅ done
M3 LangGraph adapter - SwarmStateSaver implementing BaseCheckpointSaver (drop-in for SqliteSaver) ✅ done
M4 Benchmarks - checkpoint latency (p50/p99) and throughput vs SqliteSaver and in-memory dict ✅ done
M5 CrewAI adapter + optional Redis backend (state portability across frameworks) ✅ done
M6 Docs + cross-platform abi3 wheels + PyPI release via Trusted Publishing (OIDC) ✅ done

Since 0.1

Beyond the initial milestones, these have shipped:

Area Scope Status
Backends DiskStore (SQLite file) and PostgresStore, alongside RedisStore - all drop-in, all msgpack wire-format ✅ done
Incremental checkpoints opt-in per-version channel dedup in SwarmStateSaver (incremental=True) for long threads with large, stable channels ✅ done
Sharded write locking namespace-hashed RwLocks so writers to different namespaces don't serialize (removes the lock bottleneck for free-threaded builds) ✅ done
Observability opt-in metrics hooks on put/put_writes/get_tuple with in-memory and OpenTelemetry sinks (swarmstate[otel]) ✅ done
Developer experience strict mypy in CI, exposed dumps/loads codec, runnable examples ✅ done

Under consideration

  • Docs versioning (per-release documentation) once a stable line is cut.
  • Free-threaded (cp314t) wheels to turn the sharded store into measurable multi-core throughput.

Guiding rules

  • Zero install friction - pip install swarmstate must work with no compiler.
  • Never break the drop-in - SwarmStateSaver stays swappable for SqliteSaver.
  • Reproducible benchmarks - document hardware, versions and cache state.
  • Stable state format - the msgpack codec won't change incompatibly across minor versions.
  • Safe by construction - HandoffGraph conditions run in a bounded Rust evaluator, never eval().

Track progress on GitHub.