Minimal SQLite key-value store for OCaml
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Delete outdated *.md files

Twelve docs that no longer track real work or describe the current
fork. Removed:

ocaml-tls/{attacks,sni,design}.md — pre-fork architecture notes from
mirleft/ocaml-tls that reference 2014 CVEs, polarssl, Lwt/Async
flows; nothing in the current Eio-based fork's design.

memtrace/CONTRIBUTING.md — Jane Street upstream guide pointing at
github.com PRs, doesn't apply on tangled.

ocaml-requests/HTTP2_{IMPLEMENTATION_PLAN,CONPOOL_INTEGRATION}.md —
1500 lines combined for an HTTP/2 rollout that hasn't moved in 6+
weeks; revive from git history if/when the work restarts.

merlint/TODO.md, merlint/todo/{new_rules,codes,duplication}.md,
ocaml-sqlite/TODO.md, prune/TODO.md — stale TODO/proposal lists,
last touched 6+ weeks ago. Active TODOs (monopam, irmin, jwt,
cookie, chor, requests SPEC-TODO, claude ARCHITECTURE) all kept.

Also drop the now-empty merlint/todo/ directory and roll in dune fmt
fallout for irmin/test/bench/dune.

-27
-27
TODO.md
··· 1 - # ocaml-sqlite TODO 2 - 3 - ## 1. Read any SQLite database 4 - Generalise `open_` beyond the hardcoded `kv (key TEXT, value BLOB)` schema. 5 - Parse `sqlite_master` to discover all tables and their column definitions, 6 - then expose a generic row-level read API. This makes ocaml-sqlite a pure 7 - OCaml SQLite reader — useful for inspecting `.db` files without C bindings. 8 - 9 - ## 2. Typed schema support 10 - Let users define tables with multiple typed columns (TEXT, INTEGER, REAL, 11 - BLOB, NULL). The `Btree.Record` module already handles all serial types — 12 - the missing piece is a schema definition API and column-level accessors. 13 - 14 - ## 3. Secondary indexes 15 - The `Btree.Index` module already exists. Wire it up so users can create 16 - indexes on non-key columns for efficient lookups and range scans. 17 - 18 - ## 4. Minimal SQL query layer 19 - A subset of SQL — `SELECT ... FROM ... WHERE ... ORDER BY` with simple 20 - predicates. Doesn't need a full parser; even a small OCaml DSL would work. 21 - This is the stretch goal that turns ocaml-sqlite into a genuine pure-OCaml 22 - SQLite replacement for read-heavy workloads. 23 - 24 - ## 5. Transactions / WAL 25 - ACID guarantees via write-ahead logging. Important for production use but 26 - less critical for the read-oriented use cases where a pure OCaml 27 - implementation shines most.