Fjall

active

by Marvin Jäger and contributors · since 2023

Log-structured, embeddable key-value engine in pure Rust with keyspaces and transactions.

key-valueembedded libraryopen source (permissive)growing

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

✓Transactions
✓Durable persistence
✓Compression
–Joins
–Secondary indexes
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

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

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsRust API
client languagesRust

Alternatives to Fjall

Compare all→
redbKey-Value13.8

Pure-Rust embedded key-value store: copy-on-write B-trees, ACID, and a stable file format.

fjall vs redb →
sledKey-Value13.3

Ambitious lock-free embedded Rust database whose 1.0 rewrite has stalled in alpha.

fjall vs sled →
RocksDBKey-Value48.2

Meta's embeddable LSM-tree key-value engine, the storage layer under dozens of databases.

fjall vs rocksdb →
TidesDBKey-Value13.7

Young C storage-engine library: transactional LSM with MVCC, column families and TTL.

fjall vs tidesdb →
SlateDBKey-Value19.7

Embedded LSM storage engine that writes straight to object storage like S3.

fjall vs slatedb →
libmdbxKey-Value4.9

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.