Skip to content

Repository layout

docs/              Public VitePress site: consumers/ + maintainers/
tamer/             Cloudflare Workers deploy config (docs + playground)
internals/         Agent / architect design docs (not published by VitePress)
crates/            Rust engine: cargo workspace, engine of record
clients/           Studio (Vue) + TypeScript client (@eelgrass/client)
examples/          Eelgrass Lang samples (.eel) + eelgrass.config.json
grammars/          TextMate grammar for .eel (docs highlighting, editors)
lsp/               LSP design notes (packaged server not shipped; see Status)
fuzz/              cargo-fuzz targets (full fuzz; CI uses eelgrass-fuzz-smoke)
scripts/           Repo helper scripts (e.g. cloud-agent install)
AGENTS.md          Rules for agent-written code (Rust policy + teaching)
NAMING.md          Product / language / package naming rules

Crates map

CrateRole
eelgrass-langLexer, AST, parser, typechecker; wasm intel artifact
eelgrass-storageVersioned pages, pager, B-tree, file/mem/OPFS stores
eelgrass-walWAL frames + WalSink backends
eelgrass-tenantIn-memory tenant catalog interface
eelgrass-planPlanner seam: typechecked AST → plan hint
eelgrass-execQuery executor, Meta, open/recover
eelgrass-cliProduct binary: eelgrass run | serve | studio | …
eelgrass-wasmBrowser session + OPFS durable engine ABI
eelgrass-faultSeeded fault injection for DST / IO doubles
eelgrass-stressLimit / recovery stress harness (maintainer tool)
eelgrass-simDeterministic simulation / DST skeleton (maintainer tool)
eelgrass-fuzz-smokeStdlib PRNG fuzz smoke (maintainer tool)

Stress, sim, and fuzz-smoke are maintainer tools, not the product CLI. See Testing.

Clients

PathRole
clients/studioStudio UI + playground (?local=1 wasm)
clients/typescript@eelgrass/client: Money, tagged template, codegen

Tamer

tamer/ holds stack identity and worker configs for docs and playground Workers only. There is no hosted database API deploy from this repo today. See Deploy.

Internals

internals/ is the agent source of truth: decisions, engine plan, living plans, review guides, rust notes. Public honesty updates go to Status and matching consumer pages. See Internals.

Naming

Product and package naming rules: NAMING.md (Eelgrass / Eelgrass Lang / .eel; forbidden product name: standalone Eel).

Pre-alpha. Local-first. Stdlib-only Rust engine. Tenant concerns shifted left into the database.