A rocksdb.rs wrapper bringing stack and queue functionalities

Overview

RocksDB_sq (Stack & Queue)

A Rust crate that adds stack and queue functionality to RocksDB.

This crate provide a wrapper around a RocksDB database and provide methods for pushing/popping items to a queue or stack.

This is done by using a counter as keys into a db (for example, pushing to a "test" stack will put an item under "test_0" key, and the next item will be under "test_1" key). Counters are also store into the db.

Usage

First, add the following to your Cargo.toml:

[dependencies]
rocksdb_sq = "0.1.0"

Then, in your code:

use rocksdb_sq::{StackDB, QueueDB};

StackDB

let db = RocksSQ::new("/path/to/db")?;
db.push_to_stack("my_stack", b"item1")?;
db.push_to_stack("my_stack", b"item2")?;
let item = db.pop_stack("my_stack")?;

QueueDB

let db = RocksSQ::new("/path/to/db")?;
db.push_to_queue("my_queue", b"item1")?;
db.push_to_queue("my_queue", b"item2")?;
let item = db.pop_queue("my_queue")?;

Testing

You can run the tests with:

cargo test
You might also like...
Safe MMDeploy Rust wrapper.
Safe MMDeploy Rust wrapper.

Introduction Safe MMDeploy Rust wrapper. News (2022.9.29) This repo has been added into the OpenMMLab ecosystem. (2022.9.27) This repo has been added

A wrapper around Rust futures that stores the future in space provided by the caller.

StackFuture This crate defines a StackFuture wrapper around futures that stores the wrapped future in space provided by the caller. This can be used t

Rust wrapper for the LeapC Ultraleap (Leap Motion) hand tracking device API.

LeapRS LeapRS is a safe wrapper for LeapC, the Leap Motion C API. It uses the generated binding provided by leap-sys. This is an API for accessing Lea

This is for aquestalk1 rust wrapper.

aquestalk-rs This is for aquestalk1 rust wrapper. 読み上げに使用する際 aquestalkを使ってDiscord読み上げbotなどを作成する場合aquestalkに問い合わせして、サーバー用ライセンスの購入が必須です。 Installation [d

c-library wrapper around the rust pdb crate

pdbcrust: pdbcrust is a c-library wrapper around the rust pdb crate. The API only exports a minimum subset of the pdb crate functionality. The project

A shit dAPI wrapper.

Shit dAPI wrapper A Blazingly Fast (🚀🚀🚀) discord API wrapper so shit it makes your bot say shit uncontrollably. usage: clone this repo and change t

An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous and blocking clients respectively.

eithers_rust An API for getting questions from http://either.io implemented fully in Rust, using reqwest and some regex magic. Provides asynchronous a

Safe, efficient, and ergonomic bindings to Wolfram LibraryLink and the Wolfram Language

wolfram-library-link Bindings to the Wolfram LibraryLink interface, making it possible to call Rust code from the Wolfram Language. This library is us

Owner
Nathan GD
Freelance full-stack developper Blockchain pizzayolo
Nathan GD
Stack-based programming language which emulates the look and feel of the 60s

Cauchemar Cauchemar is a stack-based programming language inspired by FORTH but more arcane. Emulates the look and feel of a programming language from

Yuki Langley 4 Dec 29, 2022
An MVP stack based bytecode VM

TinyVM An MVP stack-based bytecode VM This VM runs a simplistic, Turing complete instruction set. In ~250 LOC with extensive comments, it's meant to b

Mikail Khan 77 Dec 27, 2022
A stack based interpreted programming language.

Nightmare Nightmare is a dynamically-typed, procedural programming language that aims to be fast & simple. let user = input() as Int; print("You were

&potato 4 Nov 12, 2021
Stack heap flexible string designed to improve performance for Rust

flexible-string A stack heap flexible string designed to improve performance. FlexibleString was first implemented in spdlog-rs crate, which improved

Sprite 6 Feb 9, 2022
How to be a full stack Rust Developer

How to be a full stack Rust Developer Read Rust API guideline. Test code here and refer to the Rust blog posts at Steadylearner. If you need or know s

Steadylearner 1.2k Jan 8, 2023
OOLANG - an esoteric stack-based programming language where all instructions/commands are differnet unicode O characters

OOLANG is an esoteric stack-based programming language where all instructions/commands are differnet unicode O characters

RNM Enterprises 2 Mar 20, 2022
A stack based, virtual machine language written in Rust

Stackyy A stack based, virtual machine language written in Rust Description: Stackyy is a stack based, virtual machine language inspired by Forth and

FlawlessCode 2 May 2, 2022
OP-Up is a hive tool for testing OP-Stack-compatible software modules

op-up Warning This is a work in progress. OP-Up is a hive tool for testing OP-Stack-compatible software modules. This project was born out of the need

nicolas 20 Jun 13, 2023
Rust wrapper for `os-release`

os-release-rs Rust wrapper for /etc/os-release file. Installation Add this to your Cargo.toml: [dependencies] os-release-rs = "0.1.0" Usage use os_rel

0xMRTT 2 Nov 11, 2022
A asynchronous implementation of the invidious innertube aka youtubei API wrapper

A asynchronous implementation of the invidious innertube aka youtubei API wrapper. Using tokio,reqwest, serde and serde_json

11Tuvork28 11 Dec 22, 2022