# Persia DB > embedded single-file search database in Rust, SQLite for search, pre-alpha Pre-alpha. Status from the 2026-11-05 PROGRESS.md snapshot. Format, local storage, schema, and text analysis are done (M1–M4). persia-engine implements collection schema, documents, and manifests (M3 done, 15/15) and a segment builder, writer, and reader (M5 done, 48/48). Its write path is in progress (M6, 49/58): a memtable, a WAL with chunks, group commit, and replay, flush, commit, snapshots, auto-commit, and open checks, deletes and upserts across segments with tombstone sidecars, and segment merging (a merge policy, a segment merger, a background scheduler, and deletion of obsolete objects). Its query path is in progress (M7, 46/51): a query AST, user-text compiler, filter DSL, and query limits, collection statistics (document count, document frequency, average field length), BM25F scoring with static rank and score bounds, matching and score top-k over one view, and a collection search with sorts, pages, facets, and stored fields (CollectionViews::search). Relaxation has not been started (M8). A collection snapshot can be searched as library code. There is no search call on the database handle. The blob store is not started (M9; its dependencies are done). The embedded API has not been started (M10), and the persia crate exports no Db or Collection. The server is not started (M11). Network SDKs are not started (M14). S3, GCS, and Azure are not started (M12). persia_engine::db::Database has open, create_collection, put, put_batch, delete, and commit. CollectionSnapshot::get fetches one document by id. CollectionViews::search runs a ranked search over a collection snapshot. There is no persia::Db, no search on the database handle, no put_struct, no put_blob, no get_blob, and no OpenOptions. Those SPEC names are not the public embedded API. SPEC.md wins if a page disagrees with it. PROGRESS.md is the live roadmap counter. The same pages, concatenated as Markdown, are [llms-full.txt](https://tomiok.github.io/persiaDB/llms-full.txt). ## Docs - [Persia DB](https://tomiok.github.io/persiaDB/): An embedded, single-file, cloud-native search database, written in Rust. Pre-alpha. Think SQLite for search. - [Features](https://tomiok.github.io/persiaDB/features/): What Persia DB is designed to do, and which of those features exist today. - [How it works](https://tomiok.github.io/persiaDB/architecture/): How a Persia DB write and query move through the engine: crate layers, the write path, the query path, and segment storage. - [Roadmap](https://tomiok.github.io/persiaDB/roadmap/): Milestone status for Persia DB, read from PROGRESS.md when this site is built. M0–M15 are the MVP (v1.0). Later milestones run through v3.0. - [About](https://tomiok.github.io/persiaDB/about/): Who Persia DB is for: an open-source embedded search database written in Rust, how to contribute, and the Apache-2.0 license. - [Waitlist](https://tomiok.github.io/persiaDB/waitlist/): Leave an email to hear when Persia DB can be run. The browser encrypts it before it is stored. ## Guide - [Overview](https://tomiok.github.io/persiaDB/guide/overview/): What Persia DB is: an embedded, single-file search database written in Rust, what already works in pre-alpha, and why it is built this way. - [What is an embedded search database?](https://tomiok.github.io/persiaDB/guide/embedded-search/): What an embedded search database is: in-process full-text search, one file, and no server. When to choose it, and how Persia DB's Rust design approaches it. - [Typo-tolerant search and zero results](https://tomiok.github.io/persiaDB/guide/typo-tolerant-search/): How Persia DB designs typo-tolerant embedded search in Rust: query relaxation so a fuzzy query avoids zero results, and where BM25F and filters fit today. - [Persia DB vs SQLite FTS5, Tantivy, and Meilisearch](https://tomiok.github.io/persiaDB/guide/comparison/): Persia DB versus SQLite FTS5, Tantivy, and Meilisearch: embedded or server, single file or segments, language, and maturity. Pre-alpha; no persia::Db search API yet. - [Getting started with PersiaDB](https://tomiok.github.io/persiaDB/guide/getting-started/): Getting started with PersiaDB, a pre-alpha Rust search library: what you can call today, and the planned Db API. - [Persia DB FAQ](https://tomiok.github.io/persiaDB/guide/faq/): What Persia DB is, whether it is production ready, how it differs from SQLite FTS5, Tantivy, and Meilisearch, plus crash safety and the Apache-2.0 license. - [For AI agents](https://tomiok.github.io/persiaDB/guide/for-agents/): Status, the API that exists, the API that is only specified, and the constraints for code that reads or writes this repository. - [Key concepts](https://tomiok.github.io/persiaDB/guide/concepts/): The names Persia uses for a database, a segment, a commit, and relaxation. - [Feature reference](https://tomiok.github.io/persiaDB/guide/features/): Reference for Persia DB search, BM25F ranking, the zero-results cascade, schema, durability, and blobs. Each item is planned or done. - [Crate architecture](https://tomiok.github.io/persiaDB/guide/architecture/): How Persia DB crates are layered in Rust, from persia-format up to the server, and the rules for immutable segments and synchronous I/O. - [File format and storage](https://tomiok.github.io/persiaDB/guide/file-format/): The local container, segments, block codecs, and the storage backends. High level. - [Code](https://tomiok.github.io/persiaDB/guide/code/): What the Persia DB crates export today, with links to the source. The public Db API does not exist yet. The engine has a WAL, commit, segment merging, and a ranked search over a collection snapshot. - [Embedded API](https://tomiok.github.io/persiaDB/guide/embedded-api/): The planned Db and Collection API. Method names are illustrative and are not in the crate. - [Embedded SDKs](https://tomiok.github.io/persiaDB/guide/sdks/): The planned in-process Go and TypeScript bindings. Not implemented. Network clients are a different milestone. - [Server, cloud, and Kubernetes](https://tomiok.github.io/persiaDB/guide/server/): The planned Persia DB gRPC and HTTP server, S3, GCS, and Azure Blob storage, Kubernetes sharding, and the Rust and Go network SDKs. - [Milestones and dependencies](https://tomiok.github.io/persiaDB/guide/roadmap/): What each Persia DB milestone from M0 to v1.0 delivers, which milestones it depends on, and the post-MVP milestones through v3.0. - [Contributing](https://tomiok.github.io/persiaDB/guide/contributing/): How to pick a roadmap leaf, what a pull request has to pass, and where to report security issues. - [License](https://tomiok.github.io/persiaDB/guide/license/): Persia DB is licensed under the Apache License, Version 2.0, including copyright, NOTICE attribution, and the terms for contributions. ## Optional - [Complete documentation](https://tomiok.github.io/persiaDB/llms-full.txt): every documentation page, concatenated as Markdown - [Abridged documentation](https://tomiok.github.io/persiaDB/llms-small.txt): the same pages, with asides and extra detail removed - [SPEC.md](https://github.com/tomiok/persiaDB/blob/main/SPEC.md): design contract. It wins if the site disagrees - [ROADMAP.md](https://github.com/tomiok/persiaDB/blob/main/ROADMAP.md): planned work. Every leaf is one issue - [PROGRESS.md](https://github.com/tomiok/persiaDB/blob/main/PROGRESS.md): live roadmap counter - [CLAUDE.md](https://github.com/tomiok/persiaDB/blob/main/CLAUDE.md): engineering rules for contributors