Skip to content

Lazarus Data Store is a high performance object container data store server implemented in C++ for GNU/Linux.

License

Notifications You must be signed in to change notification settings

jc-juarez/lazarus_data_store

Repository files navigation

☄️ Lazarus Data Store

Lazarus Data Store is a high performance object container data store HTTP server implemented in C++ for GNU/Linux. It’s designed for speed, persistence, and simplicity, built on top of RocksDB.


License

This software is licensed under the Business Source License 1.1 (BSL).

You may use, modify, and distribute this software for non-commercial and non-production use only.
Commercial or production use requires a license from the Licensor.

Contact: lazarusdatastore@gmail.com

🧩 What is Lazarus Data Store?

Lazarus DS is an object container store:

  • 📦 Containers act like logical buckets.
  • 🔑 Each container holds objects stored as key → value pairs (IDs → byte streams).
  • 🌐 All operations are exposed via a lightweight HTTP API.
  • ⚡ Backed by RocksDB for persistence and performance.

🏗️ Architecture

Lazarus DS is split into three conceptual layers:

🌐 HTTP Layer

  • Provides REST-style endpoints for containers and objects.
  • Responsible for request handling and translating HTTP into storage operations.

⚙️ Storage Engine

  • Manages containers (create, drop, list) and objects (insert, get, delete).
  • Maps containers directly to RocksDB column families.
  • Ensures error handling and logging are consistent.

💾 Persistence

  • RocksDB handles the heavy lifting: WAL, SST files, compaction, caching.
  • Tuned for parallelism and predictable performance under load.

🔑 Features

  • 🗂️ Multiple containers via RocksDB column families.
  • 📝 Object CRUD (create, retrieve, update, delete) via simple endpoints.
  • 🚀 Performance-tuned RocksDB configs (parallelism, block cache).
  • 📊 Clear status codes and logging on every operation.
  • 🐧 Built for Linux servers.

🌐 HTTP API Overview

Containers

  • PUT /lazarus/network/container_endpoint/ → create container
  • DELETE /lazarus/network/container_endpoint/ → delete container

Objects

  • POST /lazarus/network/object_endpoint/ → insert object
  • GET /lazarus/network/object_endpoint/ → fetch object
  • DELETE /lazarus/network/object_endpoint/ → remove object

⚡ Python SDK

A Python client lives in sdk/python.

Quick example:

from lazarus_client import LazarusClient

client = LazarusClient(port=8080)

client.create_container("users")
client.insert_object("users", "user123", '{"name": "Alice"}')
print(client.get_object("users", "user123"))
client.delete_object("users", "user123")
client.delete_container("users")

About

Lazarus Data Store is a high performance object container data store server implemented in C++ for GNU/Linux.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published