Files
jormun-db/README.md
2026-02-15 15:44:35 -05:00

33 lines
1.6 KiB
Markdown

<p align="center">
<img src="https://artifacts.ewr1.vultrobjects.com/jormundb.png" alt="JormunDB logo" width="220" />
</p>
<h1 align="center">JormunDB</h1>
<p align="center">
A high-performance, DynamoDB-compatible database server written in Odin, backed by RocksDB.
<br />
<strong>DynamoDB-Compatible Database</strong> · Powered by <strong>RocksDB</strong> + <strong>Odin</strong>
</p>
---
## What is JormunDB?
JormunDB (formerly ZynamoDB) is a Self-Hosted DynamoDB replacement that speaks the DynamoDB wire protocol. Point your AWS SDK or CLI at it and use it as a drop-in replacement.
**Why Odin?** The original Zig implementation suffered from explicit allocator threading—every function taking an `allocator` parameter, every allocation needing `errdefer` cleanup. Odin's implicit context allocator system eliminates this ceremony: one `context.allocator = arena_allocator` at the request handler entry and everything downstream just works.
## Features
-**DynamoDB Wire Protocol**: Works with AWS SDKs and CLI out of the box
-**Binary Storage**: Efficient TLV encoding for items, varint-prefixed keys
-**Arena-per-Request**: Zero explicit memory management in business logic
-**Table Operations**: CreateTable, DeleteTable, DescribeTable, ListTables
-**Item Operations**: PutItem, GetItem, DeleteItem
-**Query & Scan**: With pagination support (Limit, ExclusiveStartKey)
-**Expression Parsing**: KeyConditionExpression for Query operations
-**Persistent Storage**: RocksDB-backed with full ACID guarantees
-**Concurrency**: Table-level RW locks for safe concurrent access