Skip to content

A lightweight and concurrent key-value database that can be embedded or deployed standalone.

License

Notifications You must be signed in to change notification settings

bbambozzi/SariDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SariDB: A Lightweight Key-Value Database

License Java Version Built with Love

Overview

SariDB is a minimalist, file-reconstructible key-value database. It can be embedded directly within your application or deployed as a standalone solution, providing excellent flexibility and performance.

Features

  • Embedded & Standalone: Whether you're building compact applications or standalone services, SariDB fits seamlessly into your Java projects.

  • File-based Reconstruction: Ensure data persistence and quick recovery with SariDB's file-based reconstruction feature built on Apache Parquet, making it robust against unexpected shutdowns.

  • Efficient Key-Value Storage: Uses efficient hashing to guarantee constant-time reads and is thread-safe out of the box, no configuration needed.

  • Concurrency First: SariDB provides built-in concurrency safety mechanisms, allowing multiple threads to operate on the database simultaneously without compromising data consistency.

Usage Example

Embedded Example

SariDB sariDB = SariDB
                .builder()
                .isEmbedded(true) // Embedded or standalone?
                .filePath("path/to/db.parquet") // Save your .parquet wherever!
                .reconstruct(false) // Reconstruct or start anew?
                .build(); // That's all folks.

sariDB.set("key", "someValue")
sariDB.get("key") // returns "someValue"

Standalone Example

SariDB sariDB = SariDB
                .builder()
                .isEmbedded(true) // Embedded or standalone?
                .filePath("path/to/db.parquet") // Save your .parquet wherever!
                .reconstruct(false) // Reconstruct or start anew?
                .portNumber(1337) // Set the port number..
                .build(); // ..And that's all folks!
sariDB.start(); // Listening on port 1337 🚀!

Add to your project (NOT YET IMPLEMENTED)

Downloads

Download latest version (Not yet implemented) or add to pom.xml:

<dependency>
    <groupId>com.SariDB</groupId>
    <artifactId>SariDB</artifactId>
    <version>1</version>
</dependency>

About

A lightweight and concurrent key-value database that can be embedded or deployed standalone.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages