{"repo":"sirixdb/sirix","free":true,"listed":false,"github":"https://github.com/sirixdb/sirix","clone":"git clone https://github.com/sirixdb/sirix.git","description":"SirixDB is an an embeddable, bitemporal, append-only database system and event store, storing immutable lightweight snapshots. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach.","language":"Java","stars":1214,"topics":["xquery","java","temporal-data","storage","snapshot","comparison","ssd","json","versioning","hashing"],"license":"BSD-3-Clause","category":"databases-storage","readme_excerpt":"SirixDB - The Bitemporal Database System Query any revision as fast as the latest 🟢 Live Demo · Why SirixDB · Docs · Website · Discord · Forum · Web UI Status: 1.0.0-beta — usable today and actively developed. The on-disk format and public APIs are stabilizing toward a 1.0 release; feedback from real use is exactly what we're looking for. --- The Problem You update a row in your database. The old value is gone. To get history, you bolt on audit tables, change-data-capture, or event sourcing. Now you have two systems: one for current state, one for history. Querying the past means replaying events or scanning logs. Your \"simple\" audit requirement just became an infrastructure project. Git solves this for files—but you can't query a Git repository. Event sourcing preserves history—but reconstructing past state means replaying from the beginning. The Solution SirixDB is a database where every revision is a first-class citizen . Not an afterthought. Not a log you replay. This works because SirixDB uses structural sharing with sub-page versioning . Unchanged pages are shared between revisions via copy-on-write — and versioning continues below the page: a commit writes page fragments containing only the changed records, and the sliding-snapshot algorithm guarantees any page is reconstructible from at most N fragments. Block-level COW (ZFS-style) copies a whole page when one byte in it changes; delta-based systems make reads replay ever-growing diff chains. SirixDB pays neither cos","default_branch":null,"files":null,"tree":[],"storefront":"/r/sirixdb","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sirixdb/sirix/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}