Katzebase

Status: Stable
Released: 2025-01-04
License: MIT License

This software is open source under the MIT License. You can obtain the source code from the GitHub repository or browse the releases for the source code associated with specific versions. If you make any changes which you feel improves this application, please feel free to submit a pull - request.

Katzebase

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 default engine is wrapped by ReliableMessageing 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

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

To run the included examples, download the sample Katzebase database, which is a compressed archive containing a word list and various relationsips between the words and languages. If you are feeling more ambitious, you can grab the larger Katzebase with StackOverflow database.

Management UI

SQL Server Migration Tool

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

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 (its on my profile).

License

MIT