All Projects → infinit → Memo

infinit / Memo

Licence: apache-2.0
The memo elastic and resilient key-value store.

Programming Languages

go
31211 projects - #10 most used programming language
python3
1442 projects
cpp14
131 projects

Projects that are alternatives of or similar to Memo

sprawl
Alpha implementation of the Sprawl distributed marketplace protocol.
Stars: ✭ 27 (-75.68%)
Mutual labels:  peer-to-peer, decentralized, distributed
tool-db
A peer-to-peer decentralized database
Stars: ✭ 15 (-86.49%)
Mutual labels:  peer-to-peer, decentralized, distributed
Diztl
Share, discover & download files in your network 💥
Stars: ✭ 162 (+45.95%)
Mutual labels:  grpc, peer-to-peer, distributed
Js Ipfs
IPFS implementation in JavaScript
Stars: ✭ 6,129 (+5421.62%)
Mutual labels:  peer-to-peer, distributed, decentralized
field-manual
The Offical User's Guide to OrbitDB
Stars: ✭ 178 (+60.36%)
Mutual labels:  peer-to-peer, decentralized, distributed
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (-24.32%)
Mutual labels:  peer-to-peer, decentralized, distributed
Js Dag Service
Library for storing and replicating hash-linked data over the IPFS network.
Stars: ✭ 81 (-27.03%)
Mutual labels:  peer-to-peer, distributed, decentralized
pyrsia
Decentralized Package Network
Stars: ✭ 103 (-7.21%)
Mutual labels:  peer-to-peer, decentralized, distributed
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+227.03%)
Mutual labels:  peer-to-peer, distributed, decentralized
Orbit Db
Peer-to-Peer Databases for the Decentralized Web
Stars: ✭ 6,381 (+5648.65%)
Mutual labels:  peer-to-peer, distributed, decentralized
Subnode.org
SubNode: Social Media App
Stars: ✭ 25 (-77.48%)
Mutual labels:  distributed, decentralized
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+706.31%)
Mutual labels:  peer-to-peer, decentralized
Orbit Db Http Api
A HTTP API Server for the OrbitDB distributed peer-to-peer database
Stars: ✭ 17 (-84.68%)
Mutual labels:  api, peer-to-peer
Tyk
Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols
Stars: ✭ 6,968 (+6177.48%)
Mutual labels:  api, grpc
Coaty Js
Collaborative IoT framework in JavaScript/TypeScript for Node.js and browsers.
Stars: ✭ 39 (-64.86%)
Mutual labels:  distributed, decentralized
Crypto Dht
Blockchain over DHT in GO
Stars: ✭ 38 (-65.77%)
Mutual labels:  distributed, decentralized
Spruce Network
Decentralized peer-to-peer mesh network.
Stars: ✭ 61 (-45.05%)
Mutual labels:  peer-to-peer, decentralized
Ipfd
An imageboard, but images are stored in a peer-to-peer network
Stars: ✭ 77 (-30.63%)
Mutual labels:  peer-to-peer, decentralized
Rust Ipfs
The InterPlanetary File System (IPFS), implemented in Rust.
Stars: ✭ 739 (+565.77%)
Mutual labels:  peer-to-peer, decentralized
Memento
Fairly basic redis-like hashmap implementation on top of a epoll TCP server.
Stars: ✭ 74 (-33.33%)
Mutual labels:  key-value-store, distributed

memo, an elastic and resilient key-value store

Logo - Memo

The memo project combines a value store (where you manipulate blocks and addresses) and a key-value store (where you manipulate arbitrary data and arbitrary keys).

memo is supported by Docker and is used as backend by the Infinit Storage Platform project.

What is the difference between the value store and the key-value store

The key-value store uses the value store to provide a higher-level interface like common key-value stores (etcd, ZooKeeper, etc.), where arbitrary data can be stored under an arbitrary name.

The value store is the lowest brick of the architecture, providing the fundamental object named blocks, declined in a few flavors. Those blocks are cryptographically protected, their addresses are chosen randomly to guarantee a homogeneous distribution, optimize data placement, fault tolerance and more. All operations are atomic. The main drawback being the responsability of keeping blocks addresses is transfered to the caller.

For more details you can consult When shoould I use the value store against the key-value store.

How to get memo

To download the source code and build memo by yourself, get it from GitHub.

git clone https://github.com/infinit/memo --recursive # Clone memo and its submodules.

Note: If you cloned it using the GitHub "clone" button, do not forget to run git submodule update --init --recursive!

How to build memo

Requirements

Core library

memo uses Elle, Infinit's core library.

Build system

memo uses Drake and has it as a submodule.

How to compile

For a detailed procedure, visit our wiki: How to build.

First you need to install Python dependencies.

sudo pip3 install -r requirements.txt

Note: If you don't want dependencies to be installed system-wide, you should consider using virtualenv.

Change directory to _build/<architecture> where you can find a generic Drake configuration script.

GNU/Linux

cd _build/linux64
./drake //build -j 4 # Build everything (using 4 jobs).

macOS

cd _build/osx
./drake //build -j 4 # Build everything (using 4 jobs).

This will result on bin/memo.

Maintainers

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].