Hi everyone!
I’m the developer of YaraDB, an open-source lightweight document-oriented database written in Python using FastAPI and Pydantic.
YaraDB is designed to be simple, self-hosted, and easy to integrate — perfect for small projects, prototyping, or learning about database internals.
It focuses on transparency and correctness with built-in mechanisms for data integrity, versioning, and recovery.
Features:
- Core Database Engine
- CRUD API — Full create/read/update/delete (archive) operations over REST.
- Write-Ahead Log (WAL) — Ensures data durability and crash safety.
- In-Memory First — Fast O(1) lookups using dictionaries before persistence.
- JSON-Based Storage — The main database snapshot is stored as a single JSON file (yaradb_storage.json).
- Optimistic Concurrency Control (OCC) — Updates require the latest version number to prevent stale writes.
- Data Integrity Hashing — SHA-256 hash verification for every document.
- Soft Deletes — Archives documents with timestamps instead of hard deletion.
- Key-Value Search — Query by exact key-value pairs.
- Combined Documents — Merge multiple documents with flexible strategies.
- Field Processors — Validate and preprocess fields (e.g. email, age).
- Batch Operations — /document/batch/create endpoint for bulk ingest.
- Python Client — Available on PyPI: yaradb-client
I'm still polishing the documentation and adding indexing + replication support.
Feedback, testing, or contributions are all welcome — especially from backend devs, DB engineers, and FastAPI enthusiasts.
ashfromsky•1h ago
YaraDB is designed to be simple, self-hosted, and easy to integrate — perfect for small projects, prototyping, or learning about database internals. It focuses on transparency and correctness with built-in mechanisms for data integrity, versioning, and recovery.
Features: - Core Database Engine - CRUD API — Full create/read/update/delete (archive) operations over REST. - Write-Ahead Log (WAL) — Ensures data durability and crash safety. - In-Memory First — Fast O(1) lookups using dictionaries before persistence. - JSON-Based Storage — The main database snapshot is stored as a single JSON file (yaradb_storage.json). - Optimistic Concurrency Control (OCC) — Updates require the latest version number to prevent stale writes. - Data Integrity Hashing — SHA-256 hash verification for every document. - Soft Deletes — Archives documents with timestamps instead of hard deletion. - Key-Value Search — Query by exact key-value pairs. - Combined Documents — Merge multiple documents with flexible strategies. - Field Processors — Validate and preprocess fields (e.g. email, age). - Batch Operations — /document/batch/create endpoint for bulk ingest. - Python Client — Available on PyPI: yaradb-client
I'm still polishing the documentation and adding indexing + replication support. Feedback, testing, or contributions are all welcome — especially from backend devs, DB engineers, and FastAPI enthusiasts.