// the find
toeverything/OctoBase
🐙 OctoBase is the open-source database behind AFFiNE, local-first, yet collaborative. A light-weight, scalable, data engine written in Rust.
OctoBase is a CRDT-based embedded/server database built in Rust, designed to power local-first collaborative apps like AFFiNE (think Notion-clone). It handles conflict-free sync across SQLite, Postgres, WebSocket, and WebRTC, with FFI bindings for Android and iOS. The target audience is developers building offline-capable collaborative tools who want the sync layer handled for them.
The CRDT implementation (jwst-codec) is a from-scratch Y.js-compatible implementation in Rust with fuzz testing and dedicated benchmarks — that's real engineering investment, not a wrapper. Storage is genuinely pluggable: same API over SQLite for embedded use and Postgres for server-side, which matters for local-first apps that need to scale. The sync abstraction cleanly separates transport from protocol — WebSocket and WebRTC connectors are concrete implementations behind a common interface, making it plausible to add libp2p without touching core logic. FFI bindings for JNI and Swift via swift-bridge mean you can actually ship this on mobile without writing the CRDT logic twice.
The project explicitly warns it's pre-1.0 with no production stability guarantees, and the last push was March 2025 — activity has dropped sharply after AFFiNE migrated to BlockSuite/y-octo, making OctoBase look increasingly like an abandoned extraction. The license is AGPL-3.0 until production-ready, then 'maybe MPL 2.0' — that's a real problem for anyone building a commercial product on it today; you'd be committing to AGPL with no binding promise of relicense. Documentation is thin: there's a Next.js homepage with tutorial guides but nothing resembling an API reference, and the guides target the TodoMVC demo level. The S3 adapter and libp2p connector are both marked in-progress with no timeline, so the 'decentralized storage' headline is aspirational rather than shippable.