Katzebase documentation and support

Katzebase is an ACID compliant document-based database written in C# using .NET 9 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).

Topics magnifying-glass-tilted-right

Default Login

Get Katzebase merge
To get the latest version of the Katzebase database server, management UI and Migration Tools check out the releases over at GitHub:

Looking for Client Connectivity? electric-plug
Grab the nuget package for your project over at nuget.org.
Or, maybe you are just looking for the client source code?

Need some sample data to work with? bookmark
You can grab the sample database. This is a compressed archive containing a word list and various relationships between the words and languages. If you are feeling more ambitious, you can grab the larger StackOverflow database.

High-level Features: 1st-place-medal

Management Interface
KBGUI.png

Technologies face-with-monocle
Katzebase is built on a multitude of in-house open source technologies, some of which are highlighted below.

ReliableMessaging.png Reliable Messaging

NTDLS.ReliableMessaging provides lightweight, simple, and high-performance TCP/IP based inter-process-communication / RPC functionality.


DelegateThreadPooling.png Delegate Thread Pooling

NTDLS.DelegateThreadPooling is a high performance active thread pool where work items can be queued as delegate functions. Allows you to easily enqueue 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.


Semaphore.png Semaphore

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.


ExpressionParser.png Expression Parser

NTDLS.ExpressionParser is a mathematics parsing engine for .net. It supports expression nesting, custom variables, custom functions all standard mathematical operations for integer, decimal (floating point), logic and bitwise.

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.


FastMemoryCache.png Fast Memory Cache

NTDLS.FastMemoryCache provides fast and easy to use thread-safe partitioned memory cache for C# that helps manage the maximum size and track performance.


SecureKeyExchange.png Secure Key Exchange

NTDLS.SecureKeyExchange allows the server to generate single or multi-round Diffie-Hellman keys in C#.


Persistence.png Persistence

NTDLS.Persistence are helpers for reading and writing serialized objects to/from files. Helpful for configuration files.


Last but not least.
Meet Vermin.