Rust-native embedded SQL with SQLite-shaped compatibility, concurrent writes, and deterministic recovery.
RedlineDB is an embedded SQL engine written in Rust. It keeps the SQLite-facing API familiar while replacing the storage core with MVCC, a concurrent B-tree, group-commit WAL, and crash recovery designed for multi-writer workloads.
The SQLite 3.53.1 and PostgreSQL 16.15 compatibility programs are incomplete. CI executes both reference lanes and uploads their raw results and provenance. A passing regression gate means recorded failures have not increased; it does not establish full SQL, ABI, database-file, or PostgreSQL wire compatibility.
The book for operators and for people embedding the engine is docs/manual. It is written against a named commit and it says which file to trust when a badge and a report disagree.
PostgreSQL 16.15 SQL-shell corpus: 265 / 265 passed, 0 failed, 0 skipped. Corpus qualification: passed. Regression gate: passed.
All corpus cases run in CI; known failures remain failures. PostgreSQL wire/client and full application compatibility remain unverified. Source: 30fa63cb030d880035ac717a6450b095927d6303 (dirty workspace); corpus SHA-256: b240a7204eeb46893ea1f06e715a144f6cd962efe8f41041582e52ca975cd5be.
W7 eliminates unnecessary syscalls from the in-memory database startup path.
Every process invocation of redlinedb previously walked the Linux cgroup
hierarchy to detect CPU parallelism — even for volatile (in-memory) databases
that don't need it. v4.1.0 fixes both call sites.
| Change | Detail |
|---|---|
EngineConfig::default() |
No longer calls cached_available_parallelism(). Volatile DBs use fixed shard defaults; persistent DBs call with_detected_parallelism() inside Engine::create_inner. |
BufferPool::new_with_parallelism() |
New cgroup-walk-free constructor; volatile path uses it directly with a derived hint. |
Engine::create_inner split |
Volatile databases skip create_dir_all (caller already did it), skip the cgroup walk, and get a lean shard layout. |
Startup overhead removed per process: ~6 syscalls (openat /proc/self/cgroup + walk of /sys/fs/cgroup/.../cpu.max).
Per-process latency ratio vs SQLite 3.53.1 — 294-case medium parity benchmark,
882 samples (294 cases × 3 reps), memory profile. Binary: release + fat LTO;
v4.0.9 and v4.1.0 additionally PGO-optimized (quick training set, clang-18).
| Version | Median ratio | p95 ratio | Δ median | Δ p95 | Key change |
|---|---|---|---|---|---|
| v4.0.8 | 1.846× | 2.429× | — | — | Release baseline |
| v4.0.9 | 1.780× | 1.990× | −3.6% | −18.1% | PGO quick-training added |
| v4.1.0 | 1.749× | 1.887× | −1.7% | −5.2% | W7: cgroup-walk bypass |
Cumulative v4.0.8 → v4.1.0: median −5.3%, p95 −22.3%.
These are retained historical subset measurements from before the external-only evidence cutover. Current release evidence uses the complete corpus through the verified
redline-testingworkflow.
Phase 5 (v4.0.1) shipped 20+ workstreams across five waves — median ratio vs SQLite 1.904× → 1.857×, cases ≥ 2.0× slower 193 → 60 (−69%). Phase 6 (v4.0.2 → v4.0.8) ships eight further releases — full per-version detail in CHANGELOG.md. Highlights:
| Release | Work-stream | Headline |
|---|---|---|
| v4.0.4 | R2 — ScalarProgram VM dispatch + parallel-scan kernel API + AccessPath IR planner wiring | +55 tests; PRAGMA toggles for opt-in |
| v4.0.5 | R3-B — per-PreparedStatement VM compile cache | +11 tests; thread-local scoped cache |
| v4.0.6 | R3-C + R4-A — SQL-side parallel-scan dispatch + Morsel hash-aggregator | +21 tests; AVX2 SUM(i64) 14.4× speedup vs scalar |
| v4.0.7 | R4-B — WAL group-commit pipeline (wal_pipeline feature) |
194× WAL throughput speedup, 250× syscall reduction |
| v4.0.8 | R3-A — PRAGMA redline_scalar_vm + PRAGMA redline_planner_use_access_path |
SQL surface for the R2-A/R2-C toggles |
Workspace test count: 1786 → 1990 (+204) with zero regressions. SIMD wins gated behind runtime is_x86_feature_detected! dispatch + the unsafe-ledger.toml audit; WAL group-commit and parallel-scan dispatch are feature-flagged so default builds remain byte-identical to v4.0.3.
The badge above and the block under sqlite-parity-report:begin are rewritten by redline-testing report from benchmark-results/sqlite-parity/latest/summary.json. The v4.0.0 ratio table in the section that follows is a historical snapshot from that release, not the current pass count.
Phase 0-4 SQLite-parity speed-gap closure. Fourteen named optimizations across the build profile, parser, scalar fast paths, and CTE/aggregate/window hot paths, measured against the external redline-testing v1.0.0 parity harness on the full 2445-case sqlite_parity suite. Median per-case latency ratio against SQLite improved from 1.837× → 1.738× with zero parity regressions (identical 2374/2445 pass set in v3.0.0 and v4.0.0; the 67 failures are pre-existing edge cases in typeof() reporting, IEEE-754 last-digit precision, fullwidth Unicode case-folding, BLOB hex encoding, and AUTOINCREMENT semantics). Jankurai code-health score holds at 85/100 (pass).
Note on corpus size. The redline-testing official corpus has grown from 1127 cases (prior CI snapshot) to 2445 cases in v1.0.0. The v4.0.0 numbers in this section are that release's measurement. The current pass count is the generated block under
sqlite-parity-report:begin.
| Bucket | v3.0.0 (main) | v4.0.0 | Delta |
|---|---|---|---|
< 1.0× (RedlineDB faster than SQLite) |
7 | 8 | +1 |
1.0 – 1.2× |
16 | 28 | +12 |
1.2 – 1.5× |
173 | 292 | +119 |
1.5 – 2.0× |
1622 | 1748 | +126 |
2.0 – 3.0× |
555 | 297 | −258 |
≥ 3.0× (tail outliers) |
1 | 1 | 0 |
| Total | 2374 | 2374 | 0 |
258 cases moved out of the 2.0–3.0× slow band; 119 moved into the 1.2–1.5× band. Per-case: 1410 cases (59.4%) are ≥5% faster in v4.0.0, 386 (16.3%) are ≥5% slower, 578 (24.3%) within ±5% noise. Mean per-case target-latency change: −6.85% (median −7.67%).
| Phase | Commit | Optimization |
|---|---|---|
| 1.1 | f8ed61f |
fat LTO + opt-level=3 + target-cpu=native release profile |
| 1.2 | b62d4ad |
parser rewrite-pass allocation elimination |
| 1.3 | 4a89e9a |
borrow + stack-buffer function-name lowercase |
| 1.4 | b229f90 |
cache + lighten /dev/shm writability probe |
| 1.5 | 2e13dc5 |
fromless SELECT fast path |
| 1.6 | a20de92 |
ahash::RandomState for StatementCache |
| 2.1–2.2 | 5bbe650 |
ASCII fast paths for LENGTH/UPPER/LOWER + memmem for INSTR |
| 2.3+2.5 | 9abab6c |
value_as_str + hot scalar fn migration to Cow |
| 2.4 | 32e078d |
itoa for streaming i64 CLI output |
| 4.1 | efc9a6e |
fromless-SELECT walker covers sqlparser scalar variants |
| 4.2 | d348e0b |
dedup aggregate cache key + reuse fn-name lower |
| 4.3 | e569d6c |
capacity hints in per-row hot allocations |
| 4.4 | 32200c2 |
hoist CTE lowercase out of recursive iteration loop |
| 4.5 | 2f21ea3 |
reuse scratch buffer for window partition keys |
- Harness:
redline-testing v1.0.0— external repository, not in-tree fixtures. - SQLite reference:
sqlite3 3.53.1(release build, SHA-256fd3bdd25217a849f8f4fa295fb78199cfd69b0c4d47ba8d8c32a1aa328bd147e). - Workload: full
sqlite_paritysuite — 2445 cases × 3 measured reps + 1 warmup,--workers 30on a 128-core Linux x86_64 host, no CPU pinning. - Target binary (v4.0.0): SHA-256
7ae60cb513e866b4a94996968b0c6b9f01b0071776bc842f526702be33f05e56(release profile, fat LTO,target-cpu=native). - Baseline binary (v3.0.0): SHA-256
da770dfd25beeb36aa22f8ce7a09d935b4e9fd7c8b2a77c36e621c46cec69ef2. - Raw JSONL evidence (committed):
benchmark-results/sqlite-parity/perf-baselines/v3.0.0-baseline.jsonl,v4.0.0-baseline.jsonl, and the structured A/B summaryv3-vs-v4-summary.json. - Reproduce:
cargo build --release -p redlinedb-cli PERF_WORKERS=30 \ REDLINE_TESTING_BIN=/path/to/redline-testing \ SQLITE_REF_BIN=/path/to/sqlite3-3.53.1 \ scripts/perf/full.sh target/release/redlinedb v4.0.0-final
RQL is an additive, default-off typed IR path: SQL remains the compatibility
frontend, and the existing SQLite/Postgres benchmark suites still run SQL. The
rql_phase1 suite in redline-testing rewrites the phase-1 SQL cases to RQL
for the RedlineDB target while keeping SQLite on the original SQL reference.
Measured locally on 2026-05-26 with redline-testing v1.0.0,
redlinedb v4.0.1, sqlite3 3.45.1, release binaries, 1 warmup + 3 measured
repetitions, --workers 1:
| Comparison | Scope | Result |
|---|---|---|
| RQL phase-1 parity | 1,385 candidates | 1,129 passed, 256 skipped, 0 failed |
| RedlineDB SQL median target latency | 1,129 shared passed cases | 3.596 ms |
| RedlineDB RQL median target latency | 1,129 shared passed cases | 3.419 ms |
| RQL / RedlineDB SQL median target ratio | 1,129 shared passed cases | 0.937× |
| RQL / RedlineDB SQL aggregate target ratio | 3,387 measured samples | 0.894× |
| Case movement vs RedlineDB SQL | 1,129 shared passed cases | 620 ≥5% faster, 298 within ±5%, 211 ≥5% slower |
| P0 RQL / RedlineDB SQL median target ratio | 577 shared P0 cases | 0.925× |
| RQL / SQLite SQL median ratio | 1,129 RQL-passed cases | 1.822× |
Read this as an early viability signal, not an upper bound. RQL already saves about 6.3% median target latency versus RedlineDB's SQL frontend on the same phase-1 passed cases, even though v0.1 still lowers most relational work into the existing executor and inherits the same CLI process-per-case benchmark overhead. The next RQL performance work should focus on widening the direct lowering path and removing compatibility-only planner work that RQL no longer needs.
Reproduce the local comparison:
cargo build --release -p redlinedb-cli
redline-testing run --suite rql_phase1 \
--target-bin target/release/redlinedb \
--sqlite-bin sqlite3 \
--output target/rql-phase1-bench/rql_phase1.raw.jsonl \
--tmp-root /tmp/rql-phase1-bench \
--workers 1 --repetitions 3 --warmup 1 --progress never
# Same target binary, SQL compatibility path, filtered afterward to the
# rql_phase1 case IDs that passed both runs. This full-suite SQL command may
# exit non-zero if unrelated sqlite_parity cases fail in the local environment.
redline-testing run --suite sqlite_parity \
--target-bin target/release/redlinedb \
--sqlite-bin sqlite3 \
--output target/rql-phase1-bench/sqlite_parity.raw.jsonl \
--tmp-root /tmp/rql-phase1-sql-bench \
--workers 1 --repetitions 3 --warmup 1 --progress never85 / 100 — pass (advisory) — unchanged from main; Phase 0-4 perf work introduced no code-health regressions. Full report at .jankurai/repo-score.md. Top dimensions: Ownership & navigation (100), Proof lanes & test routing (98), Contract & boundary integrity (88), Security & supply-chain posture (86).
RedlineDB keeps SQLite-shaped compatibility where that contract is valuable: small embedded deployments, familiar SQL, a direct Rust API, and a SQLite-shaped C surface for integrations that already expect it.
The engine is not a SQLite wrapper. It rebuilds the storage core in Rust so MVCC, concurrent writes, WAL behavior, and recovery can be owned directly instead of treated as constraints inherited from a single-writer file engine.
The codebase is also shaped for fast repair by agents and humans: smaller modules, local invariants, routed proof lanes, generated evidence, and audit metadata that point a fix at the narrowest lawful surface.
| Area | What it is |
|---|---|
| Rust API | redlinedb for embedded use |
| CLI | redlinedb-cli for shell-style workflows |
| FFI | crates/ffi exports a SQLite-shaped C ABI surface |
| SQL engine | Parser, planner, executor, pragmas, and compatibility shims |
| Storage | Kernel-owned MVCC, WAL, catalog, and recovery layers |
| Default proof lane | just fast |
| Protected required lane | just required |
| SQLite parity gate | just redline-testing-official |
Use the engine library from the same source release:
[dependencies]
redlinedb = { git = "https://github.com/neverhuman/RedlineDB", tag = "v4.1.0" }Commit Cargo.lock for reproducible application builds. Existing crates.io
versions remain available; GitHub package publication does not publish new
crates.io versions.
Linux x86_64/ARM64 and macOS Intel/Apple Silicon packages include the CLI, server, native libraries and C headers. Rust and Node are not needed to run them. Linux packages require glibc 2.35 or newer; macOS packages require macOS 15 or newer.
curl -fsSL https://raw.githubusercontent.com/neverhuman/RedlineDB/main/install.sh | bashThe installer verifies the release checksum and defaults to ~/.local. To select
a release and an installation directory:
curl -fsSL https://raw.githubusercontent.com/neverhuman/RedlineDB/main/install.sh | \
VERSION=v4.1.0 PREFIX="$HOME/redline install" bashIt installs redlinedb and redlinedb-server; it never replaces sqlite3.
Set REDLINEDB_SHA256 to additionally require a particular archive digest.
Install Rust 1.95, a C/C++ compiler and pkg-config, then run:
git clone https://github.com/neverhuman/redlineDB
cd redlineDB
./scripts/build-from-source.sh
./scripts/install-from-source.shThe source archive from GitHub works with the same scripts. An ordinary clone
contains the engine and all supporting components; no private forge or sibling
checkout is needed. Add --all to both scripts to include the testing runner,
release tools and web console (building the console also requires Node 22/npm).
Use PREFIX for the installation root and CARGO_BUILD_JOBS to limit build jobs.
| Component | Source | Release package |
|---|---|---|
| Engine, CLI, server, adapters, FFI | crates/ |
redlinedb-v4.1.0-<platform>.tar.gz |
| Conformance runner | subrepos/redline-testing |
redline-testing-v4.1.0-<platform>.tar.gz |
| Embedded web console | subrepos/redline-web |
redline-web-v4.1.0-<platform>.tar.gz |
| Rust client and database shim | subrepos/redline-central |
source |
| Release tooling | subrepos/redline-split-ops |
source |
| Historical public hub | subrepos/redline |
source |
Download packages and checksums from GitHub Releases.
Platform names are linux-x86_64, linux-arm64, macos-x86_64, and macos-arm64.
Optional packages extract alongside the core package. Start the console with
redline-web --target-bin /path/to/redlinedb.
Each package includes dependency notices, an SBOM and parent-commit build metadata. GitHub Releases also attach build provenance attestations. subrepos.toml records the initial component identities; migration records explain preserved histories and the unfinished work kept outside the release.
use redlinedb::Database;
fn main() -> redlinedb::Result<()> {
let db = Database::create("/tmp/demo.redline")?;
let mut conn = db.connect()?;
conn.execute("CREATE TABLE kv(k INTEGER PRIMARY KEY, v TEXT NOT NULL)", ())?;
conn.execute("INSERT INTO kv VALUES (1, 'hello')", ())?;
let value: String = conn.query_row("SELECT v FROM kv WHERE k = 1", ())?;
println!("{value}");
Ok(())
}rtk cargo run -p redlinedb-cli --release -- exec /tmp/demo.redline "SELECT count(*) FROM kv"
rtk cargo run -p redlinedb-cli --release -- stats /tmp/demo.redline --json
rtk cargo run -p redlinedb-cli --release -- backup /tmp/demo.redline /tmp/demo.bak --physicalrtk just fast
rtk just redline-testing-official
rtk just sqlite-parity-report-checkThe official parity lane builds subrepos/redline-testing and the engine from
this same checkout. Its processed evidence binds raw results to the runner's
SHA-256 and enforces the declared suites and compatibility baselines. The report
below is a dated historical measurement from
benchmark-results/sqlite-parity/latest/; its original provenance is preserved.
Current acceptance evidence is attached to the GitHub CI run.
SQLite parity coverage: 2445 / 2445 cases passed in CI. Failed: 0. Skipped: 0. Updated 2026-09-24.
SQLite parity latency: median gap -470.97%, worst gap -29821.13%, faster cases 43.
Benchmark metadata: RedlineDB target version redlinedb v4.1.0 (SQLite 3.45.1 compatibility), SQLite reference version 3.53.1 2026-05-05 10:34:17 c88b22011a54b4f6fbd149e9f8e4de77658ce58143a1af0e3785e4e6475127e9 (64-bit), redline-testing runner version redline-testing 1.0.1.
Full ranked latency table
| Rank | Case | Priority | Profile | Category | SQLite median ns | RedlineDB median ns | Improvement |
|---|---|---|---|---|---|---|---|
| 1 | PARTIAL_INDEX | P0 | memory | SQL_INDEX | 3047144 | 911739772 | -29821.13% |
| 2 | CHECK_CONSTRAINT_FAILURE | P0 | memory | SQL_CONSTRAINTS_NEGATIVE | 3456378 | 908472310 | -26183.94% |
| 3 | TEMP_TABLE_TEMP_SCHEMA | P0 | memory | SQL_TEMP | 3785040 | 992305133 | -26116.50% |
| 4 | SUBQUERIES_EXISTS_IN | P0 | memory | SQL_SELECT | 3742951 | 917873034 | -24422.71% |
| 5 | SCHEMA_SQLITE_SCHEMA | P0 | memory | SQL_SCHEMA | 4113482 | 999957150 | -24209.26% |
| 6 | WITH_MATERIALIZED_HINTS | P0 | memory | SQL_CTE | 2886891 | 687605831 | -22820.19% |
| 7 | INDEXED_BY | P0 | memory | SQL_INDEX | 2879487 | 685922665 | -22764.09% |
| 8 | DOT_PRINT | P0 | memory | CLI_DOT_COMMAND | 2361768 | 685558227 | -22751.94% |
| 9 | DELETE_BASIC | P0 | memory | SQL_DELETE | 3336762 | 722818715 | -21562.28% |
| 10 | DOT_SCHEMA_TABLES_INDEXES | P0 | memory | CLI_DOT_COMMAND | 3189524 | 660208320 | -20599.27% |
| 11 | INSTEAD_OF_TRIGGER_ON_VIEW | P0 | memory | SQL_TRIGGER | 2916608 | 612825241 | -20327.51% |
| 12 | WINDOW_NAMED_WINDOW | P0 | memory | SQL_WINDOW | 6223634 | 1265723631 | -20237.37% |
| 13 | TABLE_CONSTRAINTS_SUCCESS | P0 | memory | SQL_CONSTRAINTS | 2682785 | 607672453 | -20155.75% |
| 14 | DOT_DUMP | P0 | memory | CLI_DOT_COMMAND | 2839993 | 597795027 | -19826.50% |
| 15 | CREATE_VIRTUAL_TABLE_RTREE_OPTIONAL | P2 | memory | SQL_VIRTUAL_TABLE_OPTIONAL | 3203330 | 632614508 | -19648.65% |
| 16 | LITERALS_AND_TYPEOF | P0 | memory | SQL_EXPRESSIONS | 3491035 | 679937354 | -19376.67% |
| 17 | PRAGMA_USER_VERSION | P0 | memory | SQL_PRAGMA | 2757767 | 579729371 | -19224.31% |
| 18 | CORE_FORMAT_QUOTE_HEX | P0 | memory | SQL_FUNCTIONS | 3306686 | 634109968 | -19076.60% |
| 19 | DOT_EXPLAIN | P0 | memory | CLI_DOT_COMMAND | 3259356 | 622250031 | -18991.20% |
| 20 | DOT_TIMER | P3 | memory | CLI_DOT_COMMAND_DIAGNOSTIC | 3434697 | 650431214 | -18837.08% |
| 21 | SELECT_CORE_EXPRESSIONS | P0 | memory | SQL_SELECT | 2748159 | 567483744 | -18816.12% |
| 22 | CLI_REGEXP_OPTIONAL | P2 | memory | CLI_EXTENSION_OPTIONAL | 2823471 | 562118686 | -18637.29% |
| 23 | EXPRESSION_INDEX | P0 | memory | SQL_INDEX | 4164008 | 771148884 | -18419.39% |
| 24 | UPDATE_RETURNING | P0 | memory | SQL_UPDATE | 2876762 | 551274229 | -18275.81% |
| 25 | GROUP_BY_HAVING | P0 | memory | SQL_AGGREGATE | 2376285 | 550938004 | -18264.60% |
RedlineDB exposes a native Relational Query Language (RQL) interface — a
structured, JSON-serialisable protocol that bypasses the SQL text parser and
speaks directly to the planner. Phase 1 covers the full DML + query surface:
SELECT, INSERT, UPDATE, DELETE, DDL (CREATE/DROP TABLE/INDEX),
transactions, JSON operations, and advanced aggregates.
The rql_phase1 suite in redline-testing exercises 1 385 cases drawn
from the same categories as sqlite_parity (GEN_SQL_AGGREGATE, GEN_SQL_DML,
GEN_SQL_JOIN_SUBQUERY, GEN_SQL_JSON, GEN_SQL_SCALAR, SQL_AGGREGATE,
SQL_AGGREGATE_ADV, SQL_AGGREGATE_NULL, …). Results against
redlinedb v4.0.1:
| Metric | Value |
|---|---|
| Cases passed | 1 129 / 1 385 |
| Cases skipped (optional capability) | 256 |
| Cases failed | 0 |
Running identical workloads through the RQL protocol vs the SQL text path shows the parser elimination benefit directly:
| Metric | RQL / SQL ratio |
|---|---|
| Median per-case latency | 0.937× (RQL 6.3 % faster) |
| P90 per-case latency | 1.131× |
| P95 per-case latency | 1.192× |
| Aggregate wall-time (1 129 cases) | 0.894× (RQL 10.6 % faster) |
| Cases where RQL is faster | 800 / 1 129 (70.9 %) |
| Cases within 5 % of SQL | 298 / 1 129 (26.4 %) |
| Cases ≥ 5 % slower via RQL | 211 / 1 129 (18.7 %) |
RQL vs SQLite reference: median per-case ratio 1.822× (vs SQLite 3.45.1), consistent with the SQL-interface parity gap.
- Harness:
redline-testing rql_phase1suite (--suite rql_phase1). - SQLite reference:
sqlite3 3.53.1(SHA-256 pinned, built from source viascripts/sqlite/build-reference.sh). - Workload: 1 129 passing cases × 3 measured reps + 1 warmup, 10 workers.
- Raw JSONL evidence:
target/rql-phase1-bench/rql_phase1.raw.jsonl(CI artifactredlinedb-rql-benchmark-evidence). - Reproduce:
cargo build --release -p redlinedb-cli bash scripts/sqlite/build-reference.sh redline-testing run \ --target-bin target/release/redlinedb \ --sqlite-bin target/sqlite-reference/3.53.1/bin/sqlite3 \ --suite rql_phase1 \ --workers 10 --repetitions 3 --warmup 1 \ --output target/perf/rql-phase1.jsonl
{ "generated_by": "redline-testing jankurai-compare", "redlinedb_score": 86, "redlinedb_status": "unknown", "score_delta": 64, "sqlite_ref": "version-3.53.1", "sqlite_score": 22, "sqlite_status": "unknown", "updated_date": "2026-09-24" }
RedlineDB is a layered Rust workspace:
crates/redlinedbis the public embedded facade.crates/sqlowns the parser, planner, executor, and SQLite compatibility.crates/kernelowns storage, catalog, WAL, MVCC, and recovery.crates/ffiexports the SQLite-shaped C ABI for compatibility testing.crates/cliprovides the shell and administrative commands.crates/benchkeeps engine-local tests and non-official harness code only.- The official conformance corpus, memory suite, beyond-SQLite coverage, benchmark gate, and report authority live in
subrepos/redline-testing.
The dependency graph stays one-way: lower layers do not depend on higher layers. That keeps the engine testable, replaceable, and easy to reason about in the agent routing model used by this repository.
| Path | Purpose |
|---|---|
crates/redlinedb/ |
Public Rust API |
crates/sql/ |
SQL parser, planner, executor, and dialect support |
crates/kernel/ |
Storage, WAL, MVCC, catalog, and recovery |
crates/ffi/ |
SQLite-shaped C ABI shim |
crates/cli/ |
Command-line shell |
crates/server/ |
Optional framed server |
crates/bench/ |
Engine-local tests and non-official harness code; not a parity evidence producer |
benchmark-results/sqlite-parity/latest/ |
Dated official report artifacts and processed evidence |
docs/ |
Architecture, testing, and audit guidance |
paper/ |
Evaluation writeup and reproducibility assets |
just fastis the default local proof lane for ordinary edits.just requiredruns the exact protected lane: fast tests followed by the hard security, full-graph dependency-review, and Jankurai ratchet gates.just redline-testing-officialruns the included official suite wrapper.just official-evidence-guardfails if official metrics can be regenerated without the included official runner.just sqlite-parity-report-updaterefreshes the generated parity report from the latest processed official evidence bundle.just sqlite-parity-report-checkverifies the README report block matches the committed processed official evidence bundle.just sqlite-parity-report-publish-pris the CI entrypoint that regenerates the report and opens or updates the draft report PR after main CI succeeds.scripts/ci-local.sh allmirrors the broader local CI surface when you need it.
The agent-readable proof map lives in AGENTS.md. Use
docs/architecture.md for component boundaries,
docs/testing.md for test routing, and
docs/release.md for the gated release and rollback runbook.
Official SQLite, memory, RQL and beyond-SQLite evidence is produced only by
subrepos/redline-testing and its processed evidence bundle. Engine-local tests
remain regression checks, while the runner owns the conformance corpus and reports.
Read the root AGENTS.md, then follow docs/testing.md for proof lanes and
docs/architecture.md for workspace structure. Keep changes narrow, avoid
touching generated zones by hand, and prefer the smallest lawful edit that
restores the invariant.
If you reference RedlineDB in a paper or writeup, cite the evaluation material
in paper/main.pdf and link back to this repository release.
Apache-2.0. See LICENSE.


