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 rulesCrates map
| Crate | Role |
|---|---|
eelgrass-lang | Lexer, AST, parser, typechecker; wasm intel artifact |
eelgrass-storage | Versioned pages, pager, B-tree, file/mem/OPFS stores |
eelgrass-wal | WAL frames + WalSink backends |
eelgrass-tenant | In-memory tenant catalog interface |
eelgrass-plan | Planner seam: typechecked AST → plan hint |
eelgrass-exec | Query executor, Meta, open/recover |
eelgrass-cli | Product binary: eelgrass run | serve | studio | … |
eelgrass-wasm | Browser session + OPFS durable engine ABI |
eelgrass-fault | Seeded fault injection for DST / IO doubles |
eelgrass-stress | Limit / recovery stress harness (maintainer tool) |
eelgrass-sim | Deterministic simulation / DST skeleton (maintainer tool) |
eelgrass-fuzz-smoke | Stdlib PRNG fuzz smoke (maintainer tool) |
Stress, sim, and fuzz-smoke are maintainer tools, not the product CLI. See Testing.
Clients
| Path | Role |
|---|---|
clients/studio | Studio 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).