Early development

One streaming system
is all you need.

Lyra is a streaming engine written in Rust. Durable log storage, a SQL catalog and distributed execution are one system — not a broker, a table format and a query engine stitched together at the seams.

Language
Rust 2024
Wire
PostgreSQL
Licence
Apache-2.0

Four parts, one system

Each part is its own repository and its own binary. They share one library of contracts and one metadata store, so the seams between them are types rather than file formats.

any clientpsql · JDBC · drivers
lyra-catalogParse & plan
lyra-funcExecute fragments
lyra-streamWrite-ahead log & segments
lyra-metaShared contracts · metadata · authentication

Components

lyra-catalog

working

Parses and plans SQL on DataFusion and speaks the PostgreSQL wire protocol directly, so psql and any Postgres driver connect without a shim. Handles databases, schemas, users, secrets and connections, with SCRAM authentication.

lyra-catalog →

lyra-stream

storage working

A write-ahead log of segmented, CRC-checked records over a pluggable virtual file system — direct I/O, buffered, or in-memory. The log protocol is specified in TLA+. The gRPC service is next.

lyra-stream →

lyra-meta

working

The one library every other part depends on: shared catalog types, SCRAM authentication, common utilities, and the metadata interface with its Oxia-backed implementation. A library, never a service.

lyra-meta →

lyra-func

planned

The query task runtime. It executes the plan fragments catalog produces, where a fragment acts as a source, a transformation, an exchange, or a sink. Design in progress.

lyra-func →

Quickstart

The catalog is the front door. It needs a reachable Oxia service for metadata; configure it under [meta].

1

Run the catalog

$ git clone https://github.com/lyra-io/lyra-catalog
$ cd lyra-catalog
$ cargo run -p lyra-catalog-cli -- \
    serve --config options/lyra-catalog.toml
2

Connect with any Postgres client

$ psql -h 127.0.0.1 -p 5432 -U root
3

Speak SQL

CREATE DATABASE analytics;
CREATE SCHEMA analytics.events;
CREATE USER reader WITH PASSWORD 'secret';

Where it stands

Lyra is early and under active development. This is what is real today, not what is planned.