{"id":51033689,"url":"https://github.com/fricker-studios/stele-db","last_synced_at":"2026-06-22T03:01:47.362Z","repository":{"id":362387652,"uuid":"1258793712","full_name":"fricker-studios/stele-db","owner":"fricker-studios","description":"Append-only, bitemporal, audit-native analytical database engine — time-travel, provenance, and auditability as first-class. Rust, Postgres-wire compatible.","archived":false,"fork":false,"pushed_at":"2026-06-20T01:58:35.000Z","size":3181,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-20T02:08:55.137Z","etag":null,"topics":["analytics","append-only","audit","bitemporal","columnar","database","olap","postgresql","provenance","rust","temporal-database","time-travel"],"latest_commit_sha":null,"homepage":"https://steledb.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fricker-studios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-03T23:35:33.000Z","updated_at":"2026-06-20T01:58:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fricker-studios/stele-db","commit_stats":null,"previous_names":["fricker-studios/stele-db"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/fricker-studios/stele-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fricker-studios%2Fstele-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fricker-studios%2Fstele-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fricker-studios%2Fstele-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fricker-studios%2Fstele-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fricker-studios","download_url":"https://codeload.github.com/fricker-studios/stele-db/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fricker-studios%2Fstele-db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34632723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","append-only","audit","bitemporal","columnar","database","olap","postgresql","provenance","rust","temporal-database","time-travel"],"created_at":"2026-06-22T03:01:46.595Z","updated_at":"2026-06-22T03:01:47.357Z","avatar_url":"https://github.com/fricker-studios.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stele\n\n[![ci](https://github.com/fricker-studios/stele-db/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/fricker-studios/stele-db/actions/workflows/ci.yml)\n[![nightly](https://github.com/fricker-studios/stele-db/actions/workflows/nightly.yml/badge.svg?branch=main)](https://github.com/fricker-studios/stele-db/actions/workflows/nightly.yml)\n[![release](https://img.shields.io/github/v/release/fricker-studios/stele-db?include_prereleases\u0026label=release)](https://github.com/fricker-studios/stele-db/releases)\n[![docker hub](https://img.shields.io/docker/v/frickerstudios/stele/latest?logo=docker\u0026label=docker%20hub)](https://hub.docker.com/r/frickerstudios/stele)\n[![MSRV](https://img.shields.io/badge/MSRV-1.89-orange?logo=rust)](rust-toolchain.toml)\n[![license](https://img.shields.io/badge/license-BSL%201.1-blue)](docs/07-licensing-and-oss.md)\n\n**A from-scratch, append-only, bitemporal, audit-native analytical database engine.**\n\n\u003e A *stele* is an inscribed stone slab that preserves a record permanently — and, in botany, the central column of a plant. Both meanings are the design: **a permanent, append-only record built around a columnar core.**\n\nStele treats history as the primary key of reality. Every fact is stored with *when it was true in the world* (valid time) and *when the system learned it* (system time), and nothing is ever destructively overwritten. On that foundation, \"what did this table look like last Tuesday, as we understood it at month-end close?\" is a first-class query — not an archaeology project.\n\nIt competes on **correctness, time-travel, and auditability** for analytical and temporal/audit workloads.\n\n## The thesis in four SQL statements\n\n```sql\nCREATE TABLE account (id INT PRIMARY KEY, balance INT) WITH SYSTEM VERSIONING;\nINSERT INTO account VALUES (1, 100);\nUPDATE account SET balance = 250 WHERE id = 1;\nSELECT balance FROM account FOR SYSTEM_TIME AS OF (now() - interval '1 second') WHERE id = 1;\n--   → 100   (time-travel: the value *before* the update — history is never destroyed)\n```\n\n## Try it\n\n```bash\ndocker run --rm -p 5454:5454 frickerstudios/stele:latest --dev   # or ghcr.io/fricker-studios/stele\npsql -h localhost -p 5454 -d stele\n```\n\nThen paste the four statements above — give the engine a beat between the `UPDATE` and the time-travel `SELECT`, so there is a second of history to travel back to. Prebuilt binaries (Linux/macOS/Windows) are on the [releases page](https://github.com/fricker-studios/stele-db/releases), every artifact cosign-signed with SLSA provenance; to build from source, `just build` ([05 — Dev Environment](docs/05-dev-environment.md)).\n\n## Status\n\n\u003e ⚠️ **Pre-1.0 · working engine · API stabilizing · holds no production data.**\n\u003e Stele is a deliberately long-horizon, no-deadline craft project. Correctness and auditability come before speed, and before any real data — see the [trust gate](docs/06-testing-strategy.md#9-what-tested-enough-to-hold-real-data-means-the-trust-gate-operationalized). v0.1.0 and v0.2.0 have shipped: `stele-server` speaking the PostgreSQL wire protocol, the `stele` CLI/REPL, bitemporal `AS OF` on both time axes, multi-statement transactions with snapshot isolation, joins and aggregates, and signed multi-arch Docker images — see the [CHANGELOG](CHANGELOG.md) and [releases](https://github.com/fricker-studios/stele-db/releases).\n\n## At a glance\n\n| | |\n|---|---|\n| **Language** | Rust (edition 2024) |\n| **Wire protocol** | PostgreSQL-compatible (default port **5454**) — bring your existing drivers/ORMs/BI tools |\n| **Storage** | Append-only columnar segments · object-storage tiering · system-time-driven archival |\n| **Differentiators** | Bitemporality · as-of/time-travel · lineage \u0026 provenance · tamper-evident audit · hash-keyed MERGE |\n| **Security** | A [first-class pillar](docs/10-security-and-compliance.md): encryption + KMS/BYOK, RBAC/RLS/CLS, crypto-shredding erasure |\n| **License** | [BSL 1.1 → Apache-2.0](docs/07-licensing-and-oss.md) (rolling 4-year), source-available |\n\n## Documentation\n\nThe complete vision, architecture, and plan live in [`/docs`](docs/README.md) — **start with the [Charter](docs/00-charter.md).**\n\n- [00 — Charter](docs/00-charter.md) — vision, scope, non-goals, principles\n- [01 — Feature Plan](docs/01-feature-plan.md) · [02 — Architecture](docs/02-architecture.md) · [03 — Roadmap](docs/03-roadmap.md)\n- [04 — CI/CD](docs/04-cicd.md) · [05 — Dev Environment](docs/05-dev-environment.md) · [06 — Testing Strategy](docs/06-testing-strategy.md)\n- [07 — Licensing \u0026 OSS](docs/07-licensing-and-oss.md) · [08 — Packaging \u0026 Distribution](docs/08-packaging-distribution-and-releases.md) · [09 — Ecosystem \u0026 Products](docs/09-ecosystem-and-products.md)\n- [10 — Security \u0026 Compliance](docs/10-security-and-compliance.md) · [11 — Operations \u0026 Runbooks](docs/11-operations-and-runbooks.md) · [12 — Data Migration \u0026 Interop](docs/12-data-migration-and-interop.md)\n- [13 — Glossary](docs/13-glossary.md) · [14 — Performance \u0026 Benchmarking](docs/14-performance-and-benchmarking.md) · [15 — Commercialization \u0026 Sustainability](docs/15-commercialization-and-sustainability.md)\n- [Architecture Decision Records](docs/adr/README.md) · [Assumptions log](docs/assumptions.md)\n\n## License\n\nBusiness Source License 1.1, converting to Apache License 2.0 four years after each release. Source-available and self-hostable; see [07 — Licensing \u0026 OSS](docs/07-licensing-and-oss.md). Stele is **source-available**, not OSI open-source — we say so plainly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffricker-studios%2Fstele-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffricker-studios%2Fstele-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffricker-studios%2Fstele-db/lists"}