---
title: "onelite docs"
url: https://recursiveai.org/onelite/docs/
description: "Everything about OneLite: getting started, the happy-path API and the ADO.NET provider, FTS3/4/5, R*Tree and vec0, backup and blob I/O…"
version: "0.2.0-preview.2"
---

# onelite docs

Everything about OneLite: getting started, the happy-path API and the ADO.NET provider, FTS3/4/5, R*Tree and vec0, backup and blob I/O, SQLCipher-4-compatible encryption and the project’s own review of it, measured compatibility with SQLite 3.53.4, and how the storage layer and engine are built and checked. OneLite is a preview, 0.2.0-preview.2.

## Start

- [Getting started](https://recursiveai.org/onelite/docs/getting-started/index.md): Install OneLite 0.2.0-preview.2 for .NET 10, create a SQLite database, write to it and query it, in C# with no native library. OneLite is an embedded SQL…
- [Overview](https://recursiveai.org/onelite/docs/overview/index.md): OneLite is a pure-managed, SQLite-compatible embedded SQL database for .NET. It is written in C# on the base class library alone, with no native code, so…

## Using OneLite

- [The happy path](https://recursiveai.org/onelite/docs/happy-path/index.md): An opinionated layer in the core package (RecursiveAI.OneLite) for application code: interpolated queries, write transactions as functions, a thin typed…
- [ADO.NET provider](https://recursiveai.org/onelite/docs/data/index.md): A standard ADO.NET provider on the engine layer: DbConnection, DbCommand, DbDataReader, DbTransaction, DbBatch, DbDataSource. It references only the core…
- [Clearer errors](https://recursiveai.org/onelite/docs/errors/index.md): OneLite's errors say the same thing SQLite-compatible libraries say, and then say more. Nothing about the default behaviour changes.
- [Readable plans](https://recursiveai.org/onelite/docs/plans/index.md): Connection.Explain(sql, analyze), Connection.ExplainAsync and Statement.Plan return a QueryPlan: a tree of PlanNodes with a text rendering (Render()) and…
- [ATTACH and per-database pragmas](https://recursiveai.org/onelite/docs/attach/index.md): Normative notes for the engine layer. Behaviour is that of the pinned sqlite3 (lang_attach, lang_detach, pragma, atomiccommit §5); where the documentation…
- [Backup, VACUUM INTO and blob I/O](https://recursiveai.org/onelite/docs/backup-blob/index.md): Normative notes for the three features. The reference behaviour is the pinned SQLite release; every rule below was checked against it by running the same…
- [In the browser](https://recursiveai.org/onelite/docs/browser/index.md): Normative notes for the browser storage backends (RecursiveAI.OneLite.Storage.Vfs.Browser) and the headless-browser test host. Sources: the File System…

## Search and extensions

- [FTS5](https://recursiveai.org/onelite/docs/fts5/index.md): CREATE VIRTUAL TABLE t USING fts5(...) is built into the core (RecursiveAI.OneLite.Extensions.Fts5). Its shadow tables (t_data, t_idx, t_content…
- [FTS3 and FTS4](https://recursiveai.org/onelite/docs/fts3/index.md): CREATE VIRTUAL TABLE t USING fts3(...), fts4(...) and fts4aux(t) are built into the core (RecursiveAI.OneLite.Extensions.Fts3). The shadow tables…
- [R*Tree and dbstat](https://recursiveai.org/onelite/docs/rtree/index.md): Behaviour of rtree, rtree_i32 and dbstat as OneLite implements it, with what was settled by observing the pinned shell. Results are compared with the…
- [vec0: vector search](https://recursiveai.org/onelite/docs/vec/index.md): vec0 is an opt-in virtual table for exact k-nearest-neighbour search. Its SQL surface follows sqlite-vec's documented API (vec0, vec_* functions…
- [Virtual tables](https://recursiveai.org/onelite/docs/vtab/index.md): Normative notes for the virtual-table interface (RecursiveAI.OneLite.VirtualTables), built on SQLite's documented virtual-table model (vtab…

## Encryption

- [SQLCipher-compatible encryption](https://recursiveai.org/onelite/docs/encryption/index.md): Status: the page codec, key derivation and a whole-file transform are verified against files written by SQLCipher, and the pager uses them: a database…
- [Encryption review (the project’s own)](https://recursiveai.org/onelite/docs/encryption-review/index.md): The project's own review (not an external audit) of OneLite's SQLCipher-compatible encryption: Storage/Crypto/*, Storage/Pager/Pager.Crypto.cs and the…

## Compatibility and how it is checked

- [Compatibility with SQLite 3.53.4](https://recursiveai.org/onelite/docs/compatibility/index.md): OneLite aims to behave exactly like one pinned SQLite release: SQLite 3.53.4 (the sqlite3 command-line shell from sqlite.org, with the compile options it…
- [sqllogictest runner](https://recursiveai.org/onelite/docs/sqllogictest/index.md): tools/OneLite.SqlLogicTest runs sqllogictest scripts against an engine and reports, per file and per directory, how many records passed. It is our own…
- [Differential fuzzer](https://recursiveai.org/onelite/docs/differential/index.md): tools/OneLite.Differential generates a database and a batch of queries from a seed, runs them on OneLite and on the pinned sqlite3 shell, and reports…
- [Interop and durability harness](https://recursiveai.org/onelite/docs/interop-and-durability/index.md): How the repository proves two things against the pinned sqlite3 (3.53.4): files written by either side are read identically by the other, and no committed…
- [Durability and crash sequences](https://recursiveai.org/onelite/docs/durability/index.md): What the pager writes, in what order, and what a crash at each point leaves behind. Sources: sqlite.org atomiccommit, fileformat2, lockingv3, pragma.…
- [History checker](https://recursiveai.org/onelite/docs/history-checker/index.md): tools/OneLite.History records transactional histories from concurrent clients and checks them against isolation levels. It is the proof tool for BEGIN…

## Inside the engine

- [Engine and supported SQL](https://recursiveai.org/onelite/docs/engine/index.md): The engine layer: Database, Connection, Statement, the sync and async drivers, and the SQL surface (queries, writes, DDL, transactions). This page began…
- [SQL parser](https://recursiveai.org/onelite/docs/sql-ast/index.md): Normative notes for the code in src/OneLite/Sql/ that later units (name resolution, planner, VM) build on. The target is SQLite's documented dialect…
- [The write path](https://recursiveai.org/onelite/docs/write-path/index.md): How OneLite runs transactions and INSERT, UPDATE, DELETE, CREATE TABLE/INDEX and DROP TABLE/INDEX. Everything here is written to the behaviour of the…
- [WAL mode](https://recursiveai.org/onelite/docs/wal/index.md): Implements sqlite.org's wal and walformat pages, with pragma (journal_mode, wal_checkpoint, wal_autocheckpoint, journal_size_limit, synchronous). Observed…
- [Pager](https://recursiveai.org/onelite/docs/pager/index.md): Normative notes for the storage layer's page manager (RecursiveAI.OneLite.Storage.Pager). Sources: sqlite.org fileformat2, atomiccommit, lockingv3…
- [B-tree and records](https://recursiveai.org/onelite/docs/btree/index.md): Normative notes for RecursiveAI.OneLite.Storage.Record and RecursiveAI.OneLite.Storage.BTree. Sources: sqlite.org fileformat2 (§1.6 B-tree pages, §1.7…
- [VFS and locking](https://recursiveai.org/onelite/docs/vfs/index.md): Normative notes for the storage layer's lowest level (RecursiveAI.OneLite.Storage.Vfs). Sources: sqlite.org lockingv3, atomiccommit, walformat…
- [Forensic reader](https://recursiveai.org/onelite/docs/forensics/index.md): Normative notes for RecursiveAI.OneLite.Storage.Forensics. Sources: sqlite.org fileformat2 (§1.3 database header, §1.5 varints, §1.6 B-tree pages…

## Reference

- [Changelog](https://recursiveai.org/onelite/docs/changelog/index.md): All notable changes to this project are documented here. The format follows Keep a Changelog, and the project follows Semantic Versioning.

## Cookbook

- [All recipes](https://recursiveai.org/onelite/cookbook/index.md): 5 short, task-first recipes with complete code.
