sapedb — planning

The versions, and the work in each.

What sapedb is

A storage engine whose only interface is a named, declared operation. There is no query language: no query text ever reaches it. Everything a caller can run was written down first — which collection it touches, which index it walks, how far, what it returns, and who may run it.

The consequence worth planning around is that cost is declared, not discovered. A scan states its limit and so does a count, so the ceiling can be read before anything runs — unlike EXPLAIN, which tells you what a planner chose that time. Operations can call other operations, and the ceiling of the whole thing at any depth is still the number it declares.

Versions

VersionWhat it freezesStatus
1.0.0 The on-disk format, the wire protocol, the meaning of a declaration, and the public API In progress

One version, on purpose. Naming later ones now would be writing down work nobody has committed to and conditions nobody has measured.

Source and sites

WhereWhat
github.com/sapedb/sapedb The server, the command line and the operator shell, in Go. MIT licensed.
material-atomic/ecosy-sapedb The TypeScript client, @ecosy/sapedb. It also ships the conformance fixtures, which are the wire specification an implementation in any language can check itself against.
sapedb.com What it is, and what it is not.
learn.sapedb.com The guides. Every code sample there was run against a real daemon before it was published.

The Go client lives inside the server repository, at the module root. The PHP and desktop repositories are not public yet, so they are not linked — an unreachable link is worse than no link.

How this planning works

Machine-readable: llms.txt, llms-full.txt, sitemap.xml, robots.txt.