SirixDB is an embeddable bitemporal database system designed for applications that need to preserve the complete history of their data. It stores XML and JSON documents using an append-only architecture in which every committed revision remains available for querying.
Unlike conventional databases that overwrite existing records, SirixDB creates immutable snapshots. Unchanged portions of the data are shared between revisions, reducing the storage overhead associated with keeping historical versions.
The database supports two distinct notions of time: transaction time, representing when information was recorded, and valid time, representing when information was true in the real world. This makes it particularly useful for audit trails, historical analysis, regulatory records and applications where information may be corrected retrospectively.
SirixDB provides facilities for querying past revisions, examining changes and retrieving individual versions of documents. Its storage engine is designed around persistent data structures, allowing applications to navigate historical information without reconstructing it from a sequence of events.
The software can be embedded in Java applications or accessed through command-line utilities and HTTP services. Its principal focus is single-node document storage rather than distributed database clustering.
This is free and open source software.
Key Features
- Native storage of XML and JSON documents with complete revision histories.
- Append-only architecture that preserves previously committed data.
- Immutable snapshots using structural sharing to minimise duplicated storage.
- Bitemporal data management covering transaction time and valid time.
- Query historical document states by revision number or timestamp.
- JSONiq and XQuery support through the Brackit query processor.
- Temporal query functions for navigating previous and subsequent revisions.
- Compare document revisions to identify inserted, deleted and modified content.
- Path, name and content-and-structure indexes for efficient data access.
- Configurable valid-time indexes for temporal queries.
- Node-level revision metadata, including timestamps and revision identifiers.
- Optional node hashes for integrity checking and detecting changes.
- Transactional updates with ACID properties.
- REST API for database access, querying and revision history.
- Command-line utilities and an interactive JSONiq/XQuery shell.
- Web-based interface for exploring documents and comparing revisions.
- Embeddable database engine for Java applications.
- Cross-platform support – runs on Linux, macOS, and Windows.
Website: github.com/sirixdb/sirix
Support:
Developer: Johannes Lichtenberger and contributors
License: BSD 3-Clause ‘New’ or ‘Revised’ License
SirixDB is written in Java. Learn Java with our recommended free books and free tutorials.
Related Software
| Native XML Databases | |
|---|---|
| eXist-db | Feature rich native XML database |
| BaseX | XML Database engine and XPath/XQuery 3.0 Processor |
| Berkeley DB | Family of open source, embeddable databases |
| SirixDB | Embeddable bitemporal database system |
| Sedna | Provides a full range of core database services |
Read our verdict in the software roundup.
Explore our carefully curated directory of recommended free and open source software, covering every major software category.The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more. Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form. |


Please read our Comment Policy before commenting.