Skip to content

Releases: schapman1974/briskdb

BriskDB v0.1.0-alpha.5

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 12:05
498e1ac

BriskDB 0.1.0-alpha.5

Alpha 5 lets independently started BriskDB server, Rust, and Python processes
safely share one ready data root on the same machine. It keeps the embedded
library, Python wheels, HTTP/PostgreSQL server, and Debian service from alpha 4.
This remains an evaluation and development release, not a production claim.

Multiple processes, one data root

  • Reads and autocommit writes may overlap through SQLite WAL, including traffic
    to the same shard. Normal writer contention can return retryable Busy.
  • Native and manifest-leased hi/lo generated IDs remain unique across
    independently started processes.
  • Passive checkpoints may overlap. A competing checkpoint can report busy
    with unavailable frame counts through the new counts_available field.
  • Schema, catalog, generated-table DDL, initialization, upgrade, and recovery
    require sole-process ownership and return retryable Busy before mutation
    while another process has the root open.

The supported boundary is one Linux or macOS host and one local filesystem.
Every process must open its own handle after it starts. Inherited live handles
after fork(), NFS/SMB, cloud-synchronized folders, multi-host volumes, object
storage, and online backup remain unsupported. The exact contract is in
docs/MULTIPROCESS.md.

Rust subprocess tests cover same- and cross-shard traffic, checkpoints,
generated IDs, forced contention and retry, abrupt writer exit, final SQLite
integrity, and a service sharing its root with an embedder. Installed-wheel
tests repeat the public Python contract with spawned interpreters.

Install from PyPI

Compiler-free cp39-abi3 wheels support CPython 3.9 through 3.14 on Linux
x86-64/ARM64 (manylinux_2_28) and macOS Intel/Apple Silicon (macOS 11+):

python -m pip install briskdb==0.1.0a5
import briskdb

with briskdb.connect("./data", shards=4) as db:
    with db.session(routing_key="account-1") as session:
        session.migrate(
            "CREATE TABLE notes (id INTEGER PRIMARY KEY, body TEXT NOT NULL)"
        )
        session.execute("INSERT INTO notes VALUES (?1, ?2)", [1, "hello"])
        print(session.query("SELECT body FROM notes WHERE id = ?1", [1]))

The typed package includes synchronous context managers and an asyncio facade.
It runs the native Rust engine in the Python process without a listener,
subprocess, signal handler, or global logger. Async task cancellation reaches
the engine's native cancellation token.

Embedded Rust library

The root crate separates its listener-free engine from optional HTTP,
PostgreSQL, importer, and CLI layers. Downstream Rust applications can select
only the embedded API:

[dependencies]
briskdb = { git = "https://github.com/schapman1974/briskdb", tag = "v0.1.0-alpha.5", default-features = false, features = ["embedded"] }

BriskDb and owned BriskSession handles expose initialization, migrations,
prepared statements, routed SQL execution, checkpoints, cancellation,
deadlines, bounded results, and graceful close without installing process-wide
runtime behavior.

Standalone distributions

The release also provides briskdb and briskdb-import archives for Ubuntu
24.04 x86-64/ARM64 and macOS Intel/Apple Silicon. Linux assets include systemd
.deb packages for amd64 and arm64. Each package installs an unprivileged
briskdb account, administrator configuration under /etc/default/briskdb,
persistent state under /var/lib/briskdb, and journald logging.

The disabled-by-default PostgreSQL listener supports one registered-table
simple-query SELECT, INSERT, UPDATE, or DELETE statement at a time.
Psycopg 3 clients must use psycopg.ClientCursor; the ordinary cursor uses the
unsupported extended-query protocol. See docs/POSTGRES_QUICKSTART.md.

Every native archive and wheel is built and smoke-tested on its matching native
GitHub runner. Wheels are installed and tested under CPython 3.9 and 3.14, and
native dependencies are audited. Verify downloads against SHA256SUMS and the
GitHub build-provenance attestation.

Critical alpha boundaries

  • There is no authentication, authorization, or TLS. HTTP and PostgreSQL are
    restricted to loopback. Do not expose either listener to a network.
  • PostgreSQL extended-query protocol is unsupported. Parameters sent through
    Parse/Bind/Execute, server-side prepared statements, transactions, DDL,
    COPY, and binary results are unavailable. Psycopg must use
    psycopg.ClientCursor.
  • PostgreSQL accepts exactly one simple-query statement per message and only
    operates on an offline imported/registered catalog. It does not provide an
    online CREATE TABLE workflow or full PostgreSQL compatibility.
  • General cross-shard transactions are unsupported. Global ordering,
    pagination, and aggregation pushdown are incomplete, and BriskDB does not
    claim full SQL compatibility.
  • Backups require every server and embedder to stop first. The supported
    procedure is a complete data-directory copy. Online backup/restore,
    resharding, and online rebalance are unsupported.
  • There is no production metrics or observability suite.
  • The Python package does not claim DB-API 2.0 compatibility, transaction
    methods, retained SQLite streaming cursors, or native document operations.

Storage compatibility

There is no stable pre-1.0 on-disk compatibility promise. This release writes
manifest version 12 and accepts the exact documented legacy version-1 shape and
manifest versions 2 through 11 for automatic, ordered forward migration.
Unknown, malformed, partially migrated, or newer layouts fail closed.

Before opening existing data, stop every process and make a complete backup as
described in docs/OFFLINE_BACKUP.md. Startup may migrate the data.
In-place downgrade is unsupported; rollback requires restoring the complete
pre-upgrade backup. This release has no on-disk format change from alpha 1,
alpha 2, alpha 3, or alpha 4.

BriskDB v0.1.0-alpha.4

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 03:41
0d64403

BriskDB 0.1.0-alpha.4

Alpha 4 makes BriskDB usable as an in-process Rust or Python database, while
keeping the standalone HTTP/PostgreSQL server and Debian service from alpha 3.
It is intended for local evaluation and development, not production deployment.

Install from PyPI

Compiler-free cp39-abi3 wheels support CPython 3.9 through 3.14 on Linux
x86-64/ARM64 (manylinux_2_28) and macOS Intel/Apple Silicon (macOS 11+):

python -m pip install briskdb==0.1.0a4
import briskdb

with briskdb.connect("./data", shards=4) as db:
    with db.session(routing_key="account-1") as session:
        session.migrate(
            "CREATE TABLE notes (id INTEGER PRIMARY KEY, body TEXT NOT NULL)"
        )
        session.execute("INSERT INTO notes VALUES (?1, ?2)", [1, "hello"])
        print(session.query("SELECT body FROM notes WHERE id = ?1", [1]))

The typed package includes synchronous context managers and an asyncio facade.
It runs the native Rust engine in the Python process without a listener,
subprocess, signal handler, or global logger. Async task cancellation reaches
the engine's native cancellation token.

Embedded Rust library

The root crate now separates its listener-free engine from optional HTTP,
PostgreSQL, importer, and CLI layers. Downstream Rust applications can select
only the embedded API:

[dependencies]
briskdb = { git = "https://github.com/schapman1974/briskdb", tag = "v0.1.0-alpha.4", default-features = false, features = ["embedded"] }

BriskDb and owned BriskSession handles expose initialization, migrations,
prepared statements, routed SQL execution, checkpoints, cancellation,
deadlines, bounded results, and graceful close without installing process-wide
runtime behavior.

Standalone distributions

The release also provides briskdb and briskdb-import archives for Ubuntu
24.04 x86-64/ARM64 and macOS Intel/Apple Silicon. Linux assets include systemd
.deb packages for amd64 and arm64. Each package installs an unprivileged
briskdb account, administrator configuration under /etc/default/briskdb,
persistent state under /var/lib/briskdb, and journald logging.

The disabled-by-default PostgreSQL listener supports one registered-table
simple-query SELECT, INSERT, UPDATE, or DELETE statement at a time.
Psycopg 3 clients must use psycopg.ClientCursor; the ordinary cursor uses the
unsupported extended-query protocol. See docs/POSTGRES_QUICKSTART.md.

Every native archive and wheel is built and smoke-tested on its matching native
GitHub runner. Wheels are installed and tested under CPython 3.9 and 3.14, and
native dependencies are audited. Verify downloads against SHA256SUMS and the
GitHub build-provenance attestation.

Critical alpha boundaries

  • There is no authentication, authorization, or TLS. HTTP and PostgreSQL are
    restricted to loopback. Do not expose either listener to a network.
  • PostgreSQL extended-query protocol is unsupported. Parameters sent through
    Parse/Bind/Execute, server-side prepared statements, transactions, DDL,
    COPY, and binary results are unavailable. Psycopg must use
    psycopg.ClientCursor.
  • PostgreSQL accepts exactly one simple-query statement per message and only
    operates on an offline imported/registered catalog. It does not provide an
    online CREATE TABLE workflow or full PostgreSQL compatibility.
  • General cross-shard transactions are unsupported. Global ordering,
    pagination, and aggregation pushdown are incomplete, and BriskDB does not
    claim full SQL compatibility.
  • Backups require a stopped server and a complete data-directory copy. Online
    backup/restore, resharding, and online rebalance are unsupported.
  • There is no production metrics or observability suite.
  • The Python package does not claim DB-API 2.0 compatibility, transaction
    methods, retained SQLite streaming cursors, or native document operations.

Storage compatibility

There is no stable pre-1.0 on-disk compatibility promise. This release writes
manifest version 12 and accepts the exact documented legacy version-1 shape and
manifest versions 2 through 11 for automatic, ordered forward migration.
Unknown, malformed, partially migrated, or newer layouts fail closed.

Before opening existing data, stop every process and make a complete backup as
described in docs/OFFLINE_BACKUP.md. Startup may migrate the data.
In-place downgrade is unsupported; rollback requires restoring the complete
pre-upgrade backup. This release has no on-disk format change from alpha 1,
alpha 2, or alpha 3.

BriskDB v0.1.0-alpha.3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 20:27
afa7c38

BriskDB 0.1.0-alpha.3

This is the third BriskDB alpha release. It is intended for local evaluation
and development, not production deployment.

This update makes the disabled-by-default PostgreSQL listener query-capable for
the first time. After initializing a registered catalog with briskdb-import,
a standard PostgreSQL simple-query client can execute one SELECT, INSERT,
UPDATE, or DELETE statement at a time through BriskDB's shared catalog,
shard routing, limits, session lifecycle, and fixed-error boundary.

PostgreSQL quickstart

The complete copy/paste workflow for creating a SQLite source, importing it,
starting BriskDB, and using psql is in
docs/POSTGRES_QUICKSTART.md. The listener remains disabled by default. Enable
it only on loopback:

briskdb \
  --data-dir /path/to/imported-briskdb-data \
  --shards 4 \
  --postgres-listen 127.0.0.1:5433

Psycopg 3 has been exercised against the standalone alpha.3 binaries. Use
psycopg.ClientCursor, which performs client-side parameter binding and sends
the supported simple-query protocol:

import psycopg
from psycopg import ClientCursor

connection = psycopg.connect(
    "host=127.0.0.1 port=5433 user=briskdb "
    "dbname=default sslmode=disable",
    autocommit=True,
)

with ClientCursor(connection) as cursor:
    cursor.execute(
        "INSERT INTO records (tenant_id, payload) VALUES (%s, %s)",
        ("tenant-a", "hello"),
    )
    cursor.execute(
        "SELECT tenant_id, payload FROM records WHERE tenant_id = %s",
        ("tenant-a",),
    )
    print(cursor.fetchone())

The ordinary Psycopg cursor uses PostgreSQL's extended-query protocol and is
not compatible with this release.

Included binaries

Each archive contains briskdb, briskdb-import, this file, README.md, the
MIT license, and the repository documentation. Native archives are provided
for:

  • Ubuntu 24.04 x86-64;
  • Ubuntu 24.04 ARM64;
  • macOS Intel x86-64; and
  • macOS Apple Silicon ARM64.

Ubuntu 24.04 x86-64 is the only full-suite CI-supported platform. The other
archives are preview builds compiled and startup-smoke-tested on native
GitHub-hosted runners. Verify downloads against SHA256SUMS.

Linux release assets also contain
briskdb_0.1.0.alpha.3-1_amd64.deb and
briskdb_0.1.0.alpha.3-1_arm64.deb. Each package installs an unprivileged
briskdb account, hardened systemd service, administrator configuration under
/etc/default/briskdb, persistent state under /var/lib/briskdb, and journald
logging. Native Ubuntu release runners install, start, query, reinstall, and
remove each package while verifying configuration and database retention.

What is available

  • A protocol-neutral asynchronous engine over multiple bundled SQLite files.
  • Deterministic keyed routing, bounded scatter reads, connection pools,
    cancellation, deadlines, result budgets, and graceful shutdown.
  • An HTTP SQL interface and embedded read-only admin browser on loopback.
  • Versioned manifest migrations, generated-key policies, prepared statements,
    standard SQLite import, and a tested stopped-server backup/restore procedure.
  • A disabled-by-default loopback PostgreSQL endpoint with protocol 3.0 startup,
    registered-table simple queries, text-format rows, DML command tags, fixed
    safe SQLSTATE errors, recovery, and prepared-object cleanup.
  • Native archives for four OS/architecture combinations and native Debian
    packages for Ubuntu 24.04 amd64 and arm64.

Critical alpha boundaries

  • There is no authentication, authorization, or TLS. HTTP and PostgreSQL are
    restricted to loopback. Do not expose either listener to a network.
  • PostgreSQL extended-query protocol is unsupported. Parameters sent through
    Parse/Bind/Execute, server-side prepared statements, transactions, DDL,
    COPY, and binary results are unavailable. Psycopg must use
    psycopg.ClientCursor; an ordinary cursor's unsupported pipelined extended
    sequence closes that connection.
  • PostgreSQL accepts exactly one simple-query statement per message and only
    operates on an offline imported/registered catalog. It does not provide an
    online CREATE TABLE workflow or full PostgreSQL compatibility.
  • General cross-shard transactions are unsupported. Global ordering,
    pagination, and aggregation pushdown are incomplete, and BriskDB does not
    claim full SQL compatibility.
  • Backups require a stopped server and a complete data-directory copy. Online
    backup/restore, resharding, and online rebalance are unsupported.
  • There is no production metrics or observability suite.

Storage compatibility

There is no stable pre-1.0 on-disk compatibility promise. This release writes
manifest version 12 and accepts the exact documented legacy version-1 shape and
manifest versions 2 through 11 for automatic, ordered forward migration.
Unknown, malformed, partially migrated, or newer layouts fail closed.

Before opening existing data, stop the old process and make a complete backup
as described in docs/OFFLINE_BACKUP.md. Startup may migrate the data.
In-place downgrade is unsupported; rollback requires restoring the complete
pre-upgrade backup. This release has no on-disk format change from
0.1.0-alpha.1 or 0.1.0-alpha.2.

BriskDB v0.1.0-alpha.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 18:26
b4b252e

BriskDB 0.1.0-alpha.2

This is the second BriskDB alpha release. It is intended for local evaluation
and development, not production deployment.

This update adds native amd64 and arm64 Debian packages. Installing a
package creates an unprivileged briskdb service account, installs a hardened
briskdb.service, keeps administrator configuration in
/etc/default/briskdb, stores database state in /var/lib/briskdb, and sends
stdout/stderr logs to the systemd journal.

Included binaries

Each archive contains briskdb, briskdb-import, this file, README.md, the
MIT license, and the repository documentation. Native archives are provided
for:

  • Ubuntu 24.04 x86-64;
  • Ubuntu 24.04 ARM64;
  • macOS Intel x86-64; and
  • macOS Apple Silicon ARM64.

Ubuntu 24.04 x86-64 is the only full-suite CI-supported platform. The other
archives are preview builds that are compiled and startup-smoke-tested on native
GitHub-hosted runners. Verify downloads against SHA256SUMS.

The Linux release assets also contain briskdb_0.1.0~alpha.2-1_amd64.deb and
briskdb_0.1.0~alpha.2-1_arm64.deb. Each package is installed, started through
systemd, queried over loopback HTTP, checked through journald, reinstalled with
a locally modified conffile, and removed while retaining configuration and
database state on its native Ubuntu 24.04 release runner.

What is available

  • A protocol-neutral asynchronous engine over multiple bundled SQLite files.
  • Deterministic keyed routing, bounded scatter reads, connection pools,
    cancellation, deadlines, result budgets, and graceful shutdown.
  • An HTTP SQL interface and embedded read-only admin browser on loopback.
  • Versioned manifest migrations, generated-key policies, prepared statements,
    standard SQLite import, and a tested stopped-server backup/restore procedure.
  • A disabled-by-default PostgreSQL endpoint for protocol startup and session
    handling only.

Critical alpha boundaries

  • HTTP has no authentication, authorization, or TLS and is restricted to
    loopback. Do not expose it to a network.
  • PostgreSQL cannot execute SQL yet. It is disabled by default and, when
    explicitly enabled on loopback, supports only startup/session handling.
  • General cross-shard transactions are unsupported. Global ordering,
    pagination, and aggregation pushdown are incomplete, and BriskDB does not
    claim full SQL compatibility.
  • Backups require a stopped server and a complete data-directory copy. Online
    backup/restore, resharding, and online rebalance are unsupported.
  • There is no production metrics or observability suite.

Storage compatibility

There is no stable pre-1.0 on-disk compatibility promise. This release writes
manifest version 12 and accepts the exact documented legacy version-1 shape and
manifest versions 2 through 11 for automatic, ordered forward migration.
Unknown, malformed, partially migrated, or newer layouts fail closed.

Before opening existing data, stop the old process and make a complete backup
as described in docs/OFFLINE_BACKUP.md. Startup may migrate the data.
In-place downgrade is unsupported; rollback requires restoring the complete
pre-upgrade backup. This release has no on-disk format change from
0.1.0-alpha.1.

BriskDB v0.1.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 17:44
e2078c3

BriskDB 0.1.0-alpha.1

This is the first BriskDB alpha release. It is intended for local evaluation
and development, not production deployment.

Included binaries

Each archive contains briskdb, briskdb-import, this file, README.md, the
MIT license, and the repository documentation. Native archives are provided
for:

  • Ubuntu 24.04 x86-64;
  • Ubuntu 24.04 ARM64;
  • macOS Intel x86-64; and
  • macOS Apple Silicon ARM64.

Ubuntu 24.04 x86-64 is the only full-suite CI-supported platform. The other
archives are preview builds that are compiled and startup-smoke-tested on native
GitHub-hosted runners. Verify downloads against SHA256SUMS.

What is available

  • A protocol-neutral asynchronous engine over multiple bundled SQLite files.
  • Deterministic keyed routing, bounded scatter reads, connection pools,
    cancellation, deadlines, result budgets, and graceful shutdown.
  • An HTTP SQL interface and embedded read-only admin browser on loopback.
  • Versioned manifest migrations, generated-key policies, prepared statements,
    standard SQLite import, and a tested stopped-server backup/restore procedure.
  • A disabled-by-default PostgreSQL endpoint for protocol startup and session
    handling only.

Critical alpha boundaries

  • HTTP has no authentication, authorization, or TLS and is restricted to
    loopback. Do not expose it to a network.
  • PostgreSQL cannot execute SQL yet. It is disabled by default and, when
    explicitly enabled on loopback, supports only startup/session handling.
  • General cross-shard transactions are unsupported. Global ordering,
    pagination, and aggregation pushdown are incomplete, and BriskDB does not
    claim full SQL compatibility.
  • Backups require a stopped server and a complete data-directory copy. Online
    backup/restore, resharding, and online rebalance are unsupported.
  • There is no production metrics or observability suite.

Storage compatibility

There is no stable pre-1.0 on-disk compatibility promise. This release writes
manifest version 12 and accepts the exact documented legacy version-1 shape and
manifest versions 2 through 11 for automatic, ordered forward migration.
Unknown, malformed, partially migrated, or newer layouts fail closed.

Before opening existing data, stop the old process and make a complete backup
as described in docs/OFFLINE_BACKUP.md. Startup may migrate the data.
In-place downgrade is unsupported; rollback requires restoring the complete
pre-upgrade backup. This first published release has no on-disk format change
relative to the source revision from which it was cut.