Skip to content

NTDLS/Katzebase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,187 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Katzebase

Logo128

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).

Testing Status

Regression Tests

Documentation and Links

Default Login

  • Username: admin
  • Password: <blank>

Features:

  • 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.

Client Connectivity?

Grab the nuget package for your project over at nuget.org.

Sample Data

Management UI

image

SQL Server Migration Tool

We even included a tool to import your schema, data and indexes from SQL Server into Katzebase.

image

Linux

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)

Technologies


Reliable Messaging Reliable Messaging

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


Delegate Thread Pooling Delegate Thread Pooling

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.


Semaphore 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.


Expression Parser Expression Parser

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.


Fast Memory Cache 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.


Secure Key Exchange Secure Key Exchange

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


Persistence Persistence

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

Contributing

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).

License

MIT

About

ACID compliant document-based database engine with SQL language, APIs and Management UI.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages