Skip to content

nbabenko/0-stor

Repository files navigation

0-stor

Build Status

A Single device object store.

link to group on telegram

Components

Server

The 0-stor server is a generic object store that prodive simple storage primitives, read, write, list, delete.

Underneat 0-stor uses badger as key value store. Badger allow to store the keys and the value in two different devices. Because of this separation the LSM tree of keys can most of the time stay in memory. Typically the keys could be kept in memory and depending on the use case, the values could be served from an SSD or HDD.

Installation

Install the 0-stor server

go get -u github.com/zero-os/0-stor/cmd/zerostorserver

How to run the server

Running the server

Here are the options of the server:

   --debug, -d               Enable debug logging
   --bind value, -b value    Bind address (default: ":8080")
   --data value              Data directory (default: ".db/data")
   --meta value              Metadata directory (default: ".db/meta")
   --profile-addr value      Enables profiling of this server as an http service
   --auth-disable            Disable JWT authentification [$STOR_TESTING]
   --max-msg-size value      Configure the maximum size of the message GRPC server can receive, in MiB (default: 32)
   --async-write             enable asynchonous writes (default: false)
   --help, -h                show help
   --version, -v             print the version

Start the server with listening on all interfaces and port 12345

./zerostorserver --bind :12345 --data /path/to/data --meta /path/to/meta

Client

The client is where all the logic of the communicaion with the 0-stor server lies.

The client provide some basic storage primitives to process your data before sending it to the 0-stor server :

  • chunking
  • compression
  • encryption
  • replication
  • distribution/erasure coding

All of these primitives are configurable and you can decide how your data will be processed before beeing send to the 0-stor.

Client API

Client API documentation is on godoc

godoc

Client CLI

You can find a CLI for the client in cmd/zerostorcli.

To install

go get -u github.com/zero-os/0-stor/cmd/zerostorcli

More documentation

You can find more information about both component in the /docs folder of the repository.

About

Single device object store

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published