AetheriusDB · high-performance data engine

Memory isn’t a filing cabinet. It’s a compute fabric.

One engine serves SQL, vector search, graph traversal, and time-travel over the same tables — and runs your logic inside the database, so one call returns the final answer.

the memory fabriclight pulses · live

The one idea everything follows from

No locks. No repair steps. No bolted-on history.

The engine’s storage design removes whole categories of database work instead of optimizing them. That single choice buys three things most databases build elaborate machinery for.

Readers never block

Heavy write traffic never slows your queries. Reads and writes don’t compete, so dashboards stay fast while millions of rows land.

Pull-the-plug durable

Lose power mid-write and restart in milliseconds. Committed data is always intact — there is no repair step and nothing to replay.

Yesterday is one query away

Query any table AS OF an earlier moment, or replay history to debug a running application — built in, not bolted on.

Interactive prototypes

Five instruments. Run the engine’s ideas in your browser.

Each prototype is a faithful browser simulation of one core mechanic, in the order data experiences them: it arrives, gets placed, gets joined, becomes history, and finally meets your code. These are simulations of the mechanics — not the engine itself. They run on their own; the window in instrument 2, the timeline in 4, and the tabs in 5 also respond to you directly.

1 · Arrival

Pull the plug

/storage/crash-recovery

A million rows land, the block seals, and the power gets cut — sometimes mid-write, sometimes after the seal. Committed data is always intact, and there is never a log to replay.

EMPTY

rows ingested0 heap allocations0 recovery log bytes0 sealedNO

The block is ready. Rows land directly in place — no staging, no copies.

2 · Placement

Read 19%. Answer 100%.

/query-data/performance

Drag the query window and compare layouts: AetheriusDB keeps nearby rows together, so the scan touches a handful of blocks and the rest is never read at all.

blocks read skipped without reading

Drag the window, or focus the canvas and use arrow keys.

Storage order · 16 blocks × 16 rows

3 · Relation

Joins without the join tax

/graph-temporal/traversal

The same join, two ways: build and probe a hash table, or follow the relationship straight to the answer. Same result — different physics.

conventional · allocations0 conventional · memory touches0 aetherius · allocations0 aetherius · rows joined0

32 orders joining 24 customers, racing on a loop.

4 · History

Chrono replay

/graph-temporal/temporal-tables

Scrub the timeline and the query re-answers as of that moment — inserts appear, updates change, deletes vanish. History is simply part of the data.

idnameprice
    5 · Your code

    The quickstart console

    /get-started/quickstart

    The real SQL from the user guide, end to end — a typed table with a native vector column through to logic deployed into the database, so one call returns the final ranked result.

    One engine, several front doors

    Four query styles. One set of tables.

    You don’t choose between a SQL database, a vector store, and a graph store — they are different views over the same data, reachable over the native protocol, PostgreSQL pgwire, and Arrow Flight SQL at once.

    SELECT … WHERE …

    Relational SQL

    Strictly typed tables and a broad ANSI SQL surface. Schema is enforced at ingest — no permissive blob fallback.

    /define-data/ansi-sql →
    TENSOR(128) · HNSW

    Vector search

    Native fixed-dimension tensor columns with HNSW and IVFFLAT indexes for k-nearest-neighbour queries in SQL.

    /vectors-ai/vector-search →
    LINK · ARC · WALK

    Graph traversal

    Follow relationships directly — no join tables rebuilt per query.

    /graph-temporal/overview →
    AS OF TIMESTAMP · HISTORY

    Time-travel

    Query any table as of an earlier point in time, and replay history to debug.

    /graph-temporal/temporal-tables →

    From the user guide

    The rest of the machine

    Sixteen sections of task-oriented documentation. A few landmarks:

    From zero to first query

    Run it in minutes.

    One signed installer — or a plain cargo build — starts a daemon that exposes all three wire endpoints at once. The bundled REPL gets you to a first query in the same sitting.

    # macOS / Linux — signed pre-built binary
    $ curl -fsSL https://aetherius.dev/install.sh | bash
    
    # smoke-test with the bundled REPL
    $ aether-term
    aether> CREATE TABLE hello (id BIGINT, msg TEXT);
    -- OK
    pgwire 5678native 5679Arrow Flight SQL 8815

    Prefer a pre-built tarball? Grab the database server and client tools for Linux, macOS, and Windows from the downloads page →

    Building from source instead? cargo build --release -p aetheriusd -p aether-term — full steps, platforms, and start-up flags in /get-started/install →

    1 · Open a REPL

    aether-term ships with the daemon — typed tables and your first query with nothing else installed.

    /get-started/install →

    2 · Point your existing tools at it

    psql, Tableau, JDBC, and SQLAlchemy connect unchanged over the PostgreSQL wire protocol on port 5678.

    /get-started/connect-clients →

    3 · Go dataframe-native

    pip install aetherius for the lowest-overhead client, or Arrow Flight SQL for pyarrow, Polars, and dbt.

    /get-started/connect-clients →

    Ask us anything

    Honest answers to the usual questions

    Do I need a separate vector database next to it?

    No. Vectors are a native column type — TENSOR(n) — with HNSW and IVFFLAT indexes, queried in plain SQL alongside your relational data. /vectors-ai/vector-search →

    Can it replace my PostgreSQL?

    Sometimes — but that isn’t the pitch. It speaks the Postgres wire protocol, so many psql, Tableau, and JDBC workflows run unchanged; exotic extensions and catalog quirks may not. Most teams run it as the engine for analytics, vector, and graph workloads beside their OLTP database. /security/wire-protocols →

    What happens when the power dies mid-write?

    Committed data is always intact, and there is no repair step and nothing to replay — restart and query. Instrument 1 above simulates exactly this, both mid-write and after a block seals. /storage/crash-recovery →

    What’s on by default and what’s behind a flag?

    Typed tables, SQL, vector indexes, and time-travel reads are on out of the box. HTAP (enable_htap), the fast bulk path (BULK_PULSE_V2), compiled execution, and parallel scans are implemented but opt-in — every feature page carries its label. /reference/configuration →

    Which platforms are supported?

    macOS on Apple Silicon and Linux on x86_64 / aarch64 are Tier 1; Windows runs via WSL2. The Linux builds carry the fastest bulk-ingest path. /get-started/install →

    Feature Status

    Default: On out of the box — typed tables, SQL, vector indexes, time-travel reads.
    Opt-in flag: Implemented, behind a flag — enable_htap = true, BULK_PULSE_V2=1.
    Beta: Usable today, interfaces may still move.
    Roadmap: Documented intent, not yet shipped.

    What AetheriusDB is not

    Not a document database. Every column is rigidly typed at ingest — there is no schemaless JSON-blob mode. You can store JSON text in a TEXT column; you just don’t get typed, vectorized speed over it.

    Not a drop-in PostgreSQL replacement. The pgwire endpoint covers a large ANSI surface and many psql / Tableau / JDBC workflows run unchanged — but exotic extensions and catalog quirks may not behave identically.