Skip to content

Flower v0.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 23:05
· 9 commits to main since this release
v0.1.0
ebd0f00

Flower's first release: a database you program in TypeScript. You write the methods and the values derived from your data; Flower keeps those values up to date in the same commit and replicates every change with Raft.

Get started: Run Flower in five minutes downloads the server below, installs the SDK, deploys an app and calls it. The handbook covers the rest.

npm install @flower-js/sdk

What's in 0.1.0

  • Your code is the API. Collections of JSON records with schemas, derived values Flower recomputes when what they read changes (materialized per row when you ask), aggregates maintained from row deltas, and queries, mutations and cross-group transactions. Only the methods you list in http are callable.
  • Reactive reads. Live queries over SSE from any replica, fresh by default or replica-local when you opt in; a typed FlowerClient checks every alias and argument against your app's types.
  • Replicated. Three nodes tolerate one failure; a write is acknowledged once a majority has it on disk. Named partitions spread tenants across several Raft groups, move between them, and retire when a tenant leaves.
  • Components. Durable timers (scheduler), work queues with leases and fencing, expiring records, and external values kept current by ordinary worker processes (runQueueWorker, reconcile).
  • Access and crypto. Authenticate callers once and give each method an access rule; NaCl, JWT and WebAuthn passkeys inside callbacks, with managed keys that never enter application memory.
  • Operations. Staged deployments, TLS and HTTP/2, OpenTelemetry traces and metrics, capacity budgets, a NixOS module (services.flower.instances), and a Rust guest SDK (flower-sdk) for apps compiled to WebAssembly.

Flower is a working prototype and its API may still change before 1.0: current boundaries lists what it does today and the limits to plan around.

Downloads

Archive Runs on
flower-0.1.0-x86_64-unknown-linux-gnu.tar.gz Linux x86-64, glibc 2.35+
flower-0.1.0-aarch64-unknown-linux-gnu.tar.gz Linux Arm64, glibc 2.35+
flower-0.1.0-x86_64-apple-darwin.tar.gz macOS 15+, Intel
flower-0.1.0-aarch64-apple-darwin.tar.gz macOS 15+, Apple silicon

Each archive holds the standalone flower server (QuickJS/Wasm embedded; no Node needed), its MIT license and third-party notices; the .sha256 files verify them. macOS builds are not notarized. flower-js-sdk-0.1.0.tgz is the tested SDK package, as published to npm.

Full Changelog: https://github.com/xmit-dev/flower/commits/v0.1.0