A fast, embeddable document database for .NET with a familiar SQL syntax.
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 default engine is wrapped by ReliableMessaging controllers and allows access via APIs, a t-SQL like syntax, or by using the bundled management UI (which just calls the APIs).
- Full documentation at https://katzebase.com/.
- To download the Server, Management UI, and utilities, check out the releases.
- Looking for the installer for an older version? They are archived at https://networkdls.com/Software/View/Katzebase
- Username: admin
- Password: <blank>
- Abortable transactions.
- Caching and write deferment.
- Locking, isolation and atomicity.
- Indexing with partitioning.
- Multi and nested schemas with partitioning.
- Static analyzer and schema aware UI.
- Logging and health monitoring.
- Simple to use API client and DAPPER like querying.
- tSQL Query language with support for field list, joins, top(count), where clause, grouping, aggregations, etc.
Grab the nuget package for your project over at nuget.org.
- AdventureWorks as of 2024
- StackOverflow as of 2016
- WideWorldImporters as of 2026
- WordList as of 2026
We even included a tool to import your schema, data and indexes from SQL Server into Katzebase.
Katzebase runs on x64 and arm64 versions of Linux. A pre-built Raspberry Pi 5 image is available with Katzebase pre-installed, including a sample WordList database schema. Simply write the image to a 32GB+ SD card using a free imaging tool (such as Win32DiskImager), insert it into your Raspberry Pi 5, and power it on — Katzebase starts automatically. Katzebase.RaspberryPi.5.arm64.7z (1.8GB expands to 31GB)
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 sits at the core of all Katzebase condition matches.
Benchmarked at ~0.22 µs per expression (~4.5M eval/s per core). That's ~22M arithmetic ops/sec with our test expression. Roughly on par with compiled expression trees / LLVM-JIT math engines — this parser isn't "fast for C#"; it's fast, period.
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.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. If you want to join the project, just email me (it's on my profile).