Introduction
JouleDB — JouleDB — energy-metered database, HDC primitives, joules per query.
This is the official documentation for JouleDB. The full source code lives in the private -core mirror; the public release surface is at openIE-dev/jouledb.
What you'll find here
- Install — get the
jouledbbinary on your machine - Hello, JouleDB — first program in 30 seconds
- Tutorial — a 30-minute hands-on guided tour
- Reference — every feature, every flag, every API
- Cookbook — task-oriented recipes
- Design — why JouleDB exists and how it fits with the rest of openIE-dev
The openIE-dev ecosystem
JouleDB is one of five public openIE-dev projects. All five share a common substrate (flowG) and energy-metering layer (substrate-energy):
- flow-g — the IR + runtime substrate
- lux-lang — reactive language compiling to flowG
- jmax — math-native language
- joule-lang — energy-budgeted compiled language
- jouledb — energy-metered database
License
JouleDB binaries are distributed under BSL-1.1. Documentation under CC-BY-4.0. Examples under Apache-2.0.
Install
jouledb is published to crates.io and to GitHub Releases.
Fastest: cargo binstall
cargo binstall jouledb
cargo-binstall fetches the prebuilt binary for your platform from GitHub Releases without compiling anything.
If you don't have cargo-binstall yet:
cargo install cargo-binstall
From source: cargo install
cargo install jouledb
This compiles the source. Slower; useful if your platform isn't in our prebuilt list.
Direct download
curl -fsSL -o jouledb.tar.gz \
https://github.com/openIE-dev/jouledb/releases/latest/download/jouledb-$(uname -s)-$(uname -m).tar.gz
tar xzf jouledb.tar.gz
mv jouledb-*/jouledb /usr/local/bin/
Verify
jouledb --version
Hello, JouleDB
The minimum example. See the source in examples/hello/.
For a richer walkthrough, see the tutorial.
Tutorial
A 30-minute guided tour of JouleDB from install to a working program.
Tutorial chapters coming with v0.2.0. For now see examples/ for runnable code.
Reference
Complete API, syntax, and runtime reference.
Reference chapters coming with v0.2.0. For embedding APIs see docs.rs/jouledb.
Cookbook
Task-oriented recipes.
Cookbook recipes coming with v0.2.0.
Why JouleDB
JouleDB exists because [reasoning forthcoming with v0.2.0 docs].
Position in the openIE-dev ecosystem
See How it fits.
How JouleDB fits the openIE ecosystem
Five public projects share a common substrate:
lux-lang jmax joule-lang
\ | /
\ | /
▼ ▼ ▼
flow-g ← ← ← jouledb (metered persistence)
▲
│
substrate-energy
(joules)
[Detailed design discussion in v0.2.0 docs.]