Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mosuka/meteora
Distributed key-value store.
https://github.com/mosuka/meteora
grpc key-value-store raft-consensus-algorithm rust
Last synced: 4 months ago
JSON representation
Distributed key-value store.
- Host: GitHub
- URL: https://github.com/mosuka/meteora
- Owner: mosuka
- License: mit
- Created: 2020-04-19T05:47:52.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-24T03:04:46.000Z (over 3 years ago)
- Last Synced: 2024-10-10T05:29:56.071Z (4 months ago)
- Topics: grpc, key-value-store, raft-consensus-algorithm, rust
- Language: Rust
- Homepage:
- Size: 150 KB
- Stars: 26
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
rgo # Meteora
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
Meteora is a distributed key-value store written in [Rust](https://www.rust-lang.org/) built on top of [RocksDB](https://rocksdb.org/) and implemented by [The Raft Consensus Algorithm](https://raft.github.io/) and [The gRPC](https://grpc.io/).
Achieves consensus across all the nodes, ensures every change made to the system is made to a quorum of nodes.
Meteora makes easy for programmers to develop an applications with advanced features and high availability.## Building Meteora
### Requirements
The following products are required to build Meteora:
- Rust: >= 1.42.0
- make: >= 3.81
- protoc >= 3.6.1
- rocksdb >= 5.18.3Protobuf is needed only for code generation, `rust-protobuf` runtime does not use `protobuf` library.
Installl `protoc-gen-rust` program (which is `protoc` plugin) as follows"```bash
% cargo install --version 2.22.1 protobuf-codegen
% cargo install --version 0.5.0 grpcio-compiler
```### Build
Build Meteora with the following command:
```bash
$ make build
```When the build is successful, the binary file is output to the following directory:
```bash
$ ls ./bin
```## Getting started
### Start in standalone mode (Single node cluster)
Running node in standalone mode is easy. You can start node with the following command:
```bash
$ ./bin/meteora start
```## Setting data
You can set data with the following command:
```bash
$ ./bin/meteora put key1 "Meteora is a distributed key-value store."
```## Getting data
You can get data with the following command:
```bash
$ ./bin/meteora get key1
```You'll see the result of the above command like follows:
```text
Meteora is a distributed key-value store.
```## Deleting data
You can delete data with the following command:
```bash
$ ./bin/meteora delete key1
```