DB
Getting Started

Getting started

Run the single-node NYXDB engine, connect nyxsql, and execute verified append, keyed, streaming, and transform queries.

This guide starts the supported single-node all-in-one server, connects the repository's nyxsql client, and exercises the current query path. Allow about ten minutes if Docker and Node.js are already installed.

NYXDB is pre-GA. The server's local persistence and core SQL path are implemented; the client transports, STREAM SELECT, and continuous transforms are experimental. Pin compatible engine and client revisions for repeatable environments. See Capabilities & status.

1. Start the engine

The current pre-release image is published as edge. The container binds port 7777 and enables persistence at /var/lib/nyxdb by default.

docker run --name nyxdb --rm \
  -p 127.0.0.1:7777:7777 \
  -v nyxdb-data:/var/lib/nyxdb \
  ghcr.io/nyxl-io/db:edge

For a repeatable deployment, replace edge with a source-SHA tag such as sha-<7-or-12-character-commit>. The installation guide explains image tags, provenance, native defaults, and source builds.

2. Connect nyxsql

Until the CLI is published as a standalone package, run it from the matching engine checkout. It requires Node.js 18 or newer.

git clone https://github.com/NYXL-io/db.git
cd db/drivers/cli
npm ci
npm start -- --host 127.0.0.1 --port 7777

The CLI opens a multi-pane terminal. Paste a query and press Enter; create a second pane with Ctrl+N. See Use nyxsql for editing and streaming workflows, or nyxsql reference for the complete behavior.

3. Verify the query path

Every user table must name a storage policy. memory_data keeps the serving state in memory and journals it when the server has a data directory.

CREATE TABLE events (
  id UInt64,
  symbol String,
  amount Float64,
  PRIMARY KEY (id)
) SETTINGS mode = 'append', storage_policy = 'memory_data';

INSERT INTO events (id, symbol, amount) VALUES
  (1, 'BTC-USD', 64250.5),
  (2, 'ETH-USD', 3380.0);

SELECT id, symbol, amount FROM events ORDER BY id;

You should receive two rows. If the client cannot connect, first confirm that the Docker port is bound to 127.0.0.1:7777 and that the server log contains nyxdb listening on 0.0.0.0:7777.

Continue

On this page