Fjall
activeby Marvin Jäger and contributors · since 2023
Log-structured, embeddable key-value engine in pure Rust with keyspaces and transactions.
Overview
Fjall is an LSM-tree based embedded key-value store written in safe Rust, positioned as a RocksDB-style engine for the Rust ecosystem without C++ dependencies. It organises data into keyspaces (similar to column families) that share a journal for atomic cross-keyspace writes, offers optional single-writer or optimistic serializable transactions, key-value separation for large blobs, and LZ4 compression. Version 3 shipped in 2026 and releases are frequent. It suits write-heavy Rust applications; for read-mostly workloads a B-tree like redb may be simpler.
Strengths & trade-offs
Strengths
- +Pure, safe Rust LSM engine with no C/C++ toolchain needed
- +Keyspaces with atomic cross-keyspace write batches
- +Optional serializable transactions (single-writer or optimistic)
- +Key-value separation for large values reduces write amplification
- +Very active development and frequent releases
Trade-offs
- −Young project with a small maintainer team
- −Rust-only API
- −Fewer tuning options and less production history than RocksDB
Great for
- +Write-heavy storage inside Rust services
- +Embedded time-series or log storage
- +Replacing RocksDB bindings in Rust code
Think twice for
- −Non-Rust applications
- −Distributed storage needs
- −Teams that need decade-long production track records
Capabilities
Native or official first-party support · 3 of 25 tracked
Scale & consistency
- Comfortable data size
- Medium · ≤ 10 TB
- Horizontal scaling
- None
- Multi-region
- No
- Transactions
- Full ACID
- Consistency
- Strong
- Schema
- Schemaless
- Architecture
- Embedded
- Query languages
- Rust API
Deployment
Ecosystem
Alternatives to Fjall
Pure-Rust embedded key-value store: copy-on-write B-trees, ACID, and a stable file format.
fjall vs redb →Ambitious lock-free embedded Rust database whose 1.0 rewrite has stalled in alpha.
fjall vs sled →Meta's embeddable LSM-tree key-value engine, the storage layer under dozens of databases.
fjall vs rocksdb →Young C storage-engine library: transactional LSM with MVCC, column families and TTL.
fjall vs tidesdb →Embedded LSM storage engine that writes straight to object storage like S3.
fjall vs slatedb →Heavily reworked LMDB descendant: memory-mapped ACID B+tree with auto-growing files.
fjall vs libmdbx →Fjall FAQ
What is Fjall?
Fjall is a key-value database by Marvin Jäger and contributors, first released in 2023. Fjall is an LSM-tree based embedded key-value store written in safe Rust, positioned as a RocksDB-style engine for the Rust ecosystem without C++ dependencies. It organises data into keyspaces (similar to column families) that share a journal for atomic cross-keyspace writes, offers optional single-writer or optimistic serializable transactions, key-value separation for large blobs, and LZ4 compression. Version 3 shipped in 2026 and releases are frequent. It suits write-heavy Rust applications; for read-mostly workloads a B-tree like redb may be simpler.
Is Fjall open source?
Yes. Fjall is open source. License: MIT or Apache License 2.0.
Does Fjall support ACID transactions?
Yes. Fjall supports full ACID transactions, with strong consistency.
Does Fjall scale horizontally?
Fjall does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at medium scale (≤ 10 TB).
How can I run Fjall?
You can self-host it and embed it in your application.
What is Fjall best for?
Fjall is a strong fit for write-heavy storage inside Rust services, embedded time-series or log storage and replacing RocksDB bindings in Rust code. Think twice for non-Rust applications.
What are the best alternatives to Fjall?
Common alternatives to Fjall include redb, sled, RocksDB, TidesDB and SlateDB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.
How popular is Fjall?
Fjall ranks #215 of 844 databases on the WhichDB Score (15.4/100), and #30 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.