Katzebase is an ACID compliant document-based database written in C# using .NET 10 that runs on Windows or Linux. By default it runs as a service but the libraries can also be embedded. It supports what you'd expect from a typical relational-database-management-system except the "rows" are stored as sets of key-value pairs (called documents) and the schema is not fixed. The engine allows access via APIs, a SQL syntax, or by using the management UI (which just calls the APIs).
- Syntax
- Keywords
- Expressions
- Aggregate Functions
- Scalar Functions
- System Procedures
- Session Variables
- DDL Glossary
- DML Glossary
- Security Policy
- Client API (.NET)
- Username: admin
- Password: "blank" (as in, there is no password)
To get the latest version of the Katzebase database server, management UI and Migration Tools check out the releases over at GitHub:
Grab the nuget package for your project over at nuget.org.
Or, maybe you are just looking for the client source code?
- AdventureWorks as of 2024 (46MB)
- StackOverflow as of 2016 (2GB)
- WideWorldImporters as of 2026 (141MB)
- WordList as of 2026 (177MB)
Each download is a detached schema. To add one to your database:
- Extract the archive into a folder on the server (the folder is read by the server, not by the computer running the UI), for example D:\Samples\WordList.
- Using the management UI: right-click the schema to attach it under (for example Root), choose Attach Schema... and select the extracted folder. This opens an ATTACH SCHEMA script in a new tab; check the name and run it.
- Using SQL: run ATTACH SCHEMA:
ATTACH SCHEMA WordList FROM 'D:\Samples\WordList'The folder is copied into the database, so the extracted files are left untouched and can be attached again, for example under another name. Attaching requires an administrator account. If the output reports indexes created by an older version of Katzebase, rebuild them with REBUILD INDEX.
- ACID transactions that can be cancelled, with deadlock detection.
- RocksDB storage with caching and write deferment.
- Locking, isolation and atomicity.
- Unique and composite indexes, with index intersection.
- Multiple and nested schemas, which can be detached and attached between databases.
- Accounts, roles and schema level security policies.
- Static analyzer and schema aware UI.
- Logging and health monitoring.
- Simple to use .NET API client with Dapper-like querying, bulk inserts and async methods.
- T-SQL like query language with support for field lists, joins, top, offset, distinct, where clauses, grouping, aggregations, select into, etc.
Katzebase runs on Windows and Linux (x64, arm64).
Tested on Windows 10, Modern server versions, Ubuntu Linux and Raspberry Pi OS.
Katzebase is built on a multitude of in-house open source technologies, some of which are highlighted below.
NTDLS.ReliableMessaging provides lightweight, simple, and high-performance TCP/IP based inter-process-communication / RPC functionality.
NTDLS.DelegateThreadPooling is a high performance and predictable active thread pool where work items can be queued as delegate functions. Allowing for infinite FIFO worker items or enforce queue size, wait on collections of those items to complete, and total control over the pool size. Also allows for multiple pools, so that different workloads do not interfere with one another.
NTDLS.Semaphore provides various classes to protect a variable from parallel / non-sequential thread access by always acquiring an exclusive lock on the resource. Also allows for shared access, pessimistic locking, optimistic locking and dead-lock prevention lock patterns with lightweight cancellation.
NTDLS.ExpressionParser is a mathematics parsing engine. It supports expression nesting, custom variables, custom functions all standard mathematical operations for integer, decimal (floating point), logic and bitwise. It sets at the core of all Katzebase condition matches.
NTDLS.FastMemoryCache provides fast and easy to use thread-safe partitioned memory cache for C# that helps manage the maximum size and track performance.
NTDLS.SecureKeyExchange allows the server to generate single or multi-round Diffie-Hellman keys in C#.
NTDLS.Persistence are helpers for reading and writing serialized objects to/from files. Helpful for configuration files.
Meet Vermin.