Bog is a compiled data runtime: declare your schema and access patterns, get back a purpose-built database artifact that fuses relational, semantic, and graph access.

The full Bog language and runtime are prerelease. Its public components are usable today in BogKit: Fold, ESE, ANNy, and runnable examples.

Install

git clone https://github.com/flowercomputers/bogkit.git
cd bogkit
cargo run -p timeseries

See an incremental view update

The timeseries example inserts six weather readings into Fold-backed total, hourly, daily-rain, and raw-reading views. It then retracts one rainy reading; Fold updates each affected materialized view instead of rebuilding it.

Expected output:

after initial ingest
total readings: 6
hourly weather:
  hour 0: 3 samples, avg temp 18.5 c, avg wind 7.0 mph, rain 1.2 mm
  hour 1: 2 samples, avg temp 17.4 c, avg wind 10.8 mph, rain 0.4 mm
  hour 24: 1 samples, avg temp 20.1 c, avg wind 4.1 mph, rain 0.7 mm
daily rain:
  day 0: 1.6 mm
  day 1: 0.7 mm
raw readings still queryable: 6

after retracting one rainy reading
total readings: 5
hourly weather:
  hour 0: 2 samples, avg temp 18.6 c, avg wind 6.0 mph, rain 0.0 mm
  hour 1: 2 samples, avg temp 17.4 c, avg wind 10.8 mph, rain 0.4 mm
  hour 24: 1 samples, avg temp 20.1 c, avg wind 4.1 mph, rain 0.7 mm
daily rain:
  day 0: 0.4 mm
  day 1: 0.7 mm
raw readings still queryable: 5

Decide

Use Bog if:

  • one query needs to fuse semantic + relational + graph
  • you're stitching Postgres + vector store + reranker + glue
  • you need incremental/streaming views
  • you're building agent memory
  • you're on edge/CPU-only hardware

Don't use Bog if:

  • you need ad hoc runtime queries against an arbitrary surface
  • you need multi-writer/multi-node today
  • a well-tuned single-modality Postgres is already comfortable

Troubleshooting

  • cargo: command not found — Install a current stable Rust toolchain, then rerun the same command.
  • Git reports that bogkit already exists — Choose a fresh empty directory before restarting the exact path.
  • Git reports Could not resolve host: github.com while cloning — Restore network or DNS access, then rerun the first Install command from a fresh empty directory.
  • package(s) `timeseries` not found in workspace — Verify that the current directory is the cloned bogkit workspace root.

Next 3 tasks

  1. swap in your own schema and recompile
  2. add hybrid BM25 + semantic search with ESE + ANNy
  3. stream live data through a Fold sliding-window view (see flowerhose)

FAQ

What is Bog?

Bog is a compiled database system. Traditional databases are interpreters: queries are parsed, planned, and executed against a generic runtime at query time. Bog front-loads that work so schema and access patterns compile into fused indices, pre-planned queries, and memory layouts for a known workload, giving predictable performance with no planner surprises and no SQL injection surface.

What can I use today?

BogKit is public today, with Fold, ESE, ANNy, and runnable examples. Those examples cover an incremental timeseries store, a live chat backend, and hybrid BM25 + semantic search. The full Bog language and runtime are prerelease.

Do I need to replace my database?

No. The default first deployment is a sidecar: keep Postgres or Supabase, and point Bog at one painful search-, retrieval-, or memory-shaped workload.

What's the catch?

Queries must be declared before runtime: you cannot run a wholly new query that the artifact was not compiled for. That asks for more intentionality up front in exchange for speed and predictability.

Can it handle streaming/real-time data?

Yes. The engine descends from incremental view maintenance and differential dataflow, so changes flow through a compiled operator graph and declared queries stay current. flowerhose ingests the live Bluesky firehose from one small process.

Why not Postgres + pgvector + glue?

That stack is fine for single-modality workloads. When one user-facing query must fuse semantic + relational + graph in one shot, it becomes two systems, a cross-system join, a reranker, and brittle orchestration. Bog compiles those modes into one access path.

Is it fast?

At Enzyme, the embedding runtime delivered a measured ~6x end-to-end speedup, trending toward 12x with batching. At Subvert, multi-modal natural-language catalog search dropped from seconds to milliseconds. See the measured static embedding throughput.

Is it open source?

BogKit is public today. Bog's core will be free, source-available software, with its license settled before public release.