Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bog

Bog is a database runtime that makes every attempt to do as much work as possible as early as possible, to make reads fast. This means compiling queries into functions that eagerly update their output as mutations occur.

Every database runtime is a collection of components, pieced together and integrated by its builders to satisfy some set of constraints. In this book we describe several components we’ve built in our journey to Bog v0.1.0. These can be used independently of each other, and eventually they will be used in concert to power any particular Bog.

Fold

Fold, our take on an incremental programming framework, is the engine that powers Bog. It’s a rust crate with iterator like primitives for materializing a stream of ever changing data into views. Statically typed and very, very fast.

Extremely Static Embedding (ESE)

ESE, our first published take on a compiler oriented approach to static embedding. It’s a flattening of a tokenizer and map of embeddings into a perfect hash function. It’s also evidence that the approach is worth generalizing, and that there is much to be rethought about how embedding runtimes currently function.