frugalos / Frugalos
Licence: mit
Frugal Object Storage
Stars: ✭ 270
Programming Languages
rust
11053 projects
Labels
Projects that are alternatives of or similar to Frugalos
Seaweedfs
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding.
Stars: ✭ 13,380 (+4855.56%)
Mutual labels: object-storage
python-ecsclient
Python library for interacting with the Dell ECS Management API
Stars: ✭ 12 (-95.56%)
Mutual labels: object-storage
ossperf
A lightweight tool for analyzing the performance and data integrity of object-based storage services
Stars: ✭ 67 (-75.19%)
Mutual labels: object-storage
minio-dart
Unofficial MinIO Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
Stars: ✭ 42 (-84.44%)
Mutual labels: object-storage
ECS-CommunityEdition
ECS Community Edition "Free & Frictionless"
Stars: ✭ 125 (-53.7%)
Mutual labels: object-storage
Akubra
Simple solution to keep a independent S3 storages in sync
Stars: ✭ 79 (-70.74%)
Mutual labels: object-storage
php object storage
对象存储PHP简易代码,支持简单上传,删除,列表功能。支持网易,腾讯,七牛,UCloud,亚马逊
Stars: ✭ 17 (-93.7%)
Mutual labels: object-storage
auklet
Auklet is a high performance storage engine based on Openstack Swift
Stars: ✭ 86 (-68.15%)
Mutual labels: object-storage
qscamel
qscamel is a command line tool to migrate data between different endpoint efficiently.
Stars: ✭ 34 (-87.41%)
Mutual labels: object-storage
laravel-ovh
Wrapper for OVH Object Storage integration with laravel
Stars: ✭ 30 (-88.89%)
Mutual labels: object-storage
ibm-cloud-functions-serverless-ocr-openchecks
Serverless bank check deposit processing with object storage and optical character recognition using Apache OpenWhisk powered by IBM Cloud Functions. See the Tech Talk replay for a demo.
Stars: ✭ 40 (-85.19%)
Mutual labels: object-storage
Storj
Ongoing Storj v3 development. Decentralized cloud object storage that is affordable, easy to use, private, and secure.
Stars: ✭ 1,278 (+373.33%)
Mutual labels: object-storage
tgstore
An encrypted object storage system with unlimited space backed by Telegram.
Stars: ✭ 69 (-74.44%)
Mutual labels: object-storage
phalanx
Phalanx is a cloud-native distributed search engine that provides endpoints through gRPC and traditional RESTful API.
Stars: ✭ 192 (-28.89%)
Mutual labels: object-storage
S4
S4 is 100% S3 compatible storage, accessed through Tor and distributed using IPFS.
Stars: ✭ 67 (-75.19%)
Mutual labels: object-storage
Frugalos
Frugal Object Storage
Frugalos is a distributed object storage written by Rust.
It is suitable for storing medium size BLOBs that become petabyte scale in total.
Documentation
- Rustdoc
- Wiki (Japanese version only)
- Real World Example in Niconico (used for recording live video streams)
Installation
You can install frugalos
by the following command:
$ cargo install frugalos
Note: The current installation process requires automake
, autoconf
, and libtool
to build liberasurecode internally. If you have not installed them, please install them. (See also liberasurecode's prerequisites)
You can also use pre-build binaries from the releases page.
Simple Example
// Create a cluster.
$ frugalos create --id example --data-dir example/
Oct 26 13:42:06.244 INFO [START] create: local=Server { id: "example", seqno: 0, host: V4(127.0.0.1), port: 14278 }; data_dir.as_ref()="example/"; , server: [email protected]:14278, module: frugalos_config::cluster:121
Oct 26 13:42:06.245 INFO Creates data directry: "example/", server: [email protected]:14278, module: frugalos_config::cluster:113
Oct 26 13:42:06.256 INFO [START] LoadBallot: lump_id=LumpId("03000000000000000000000000000000"); , server: [email protected]:14278, module: frugalos_raft::storage::ballot:21
...
...
// Start a frugalos process in the background.
$ frugalos start --data-dir example/ &
Oct 26 13:46:16.046 INFO Local server info: Server { id: "example", seqno: 0, host: V4(127.0.0.1), port: 14278 }, module: frugalos_config::service:68
Oct 26 13:46:16.062 INFO [START] LoadBallot: lump_id=LumpId("03000000000000000000000000000000"); , module: frugalos_raft::storage::ballot:21
Oct 26 13:46:16.086 INFO Starts RPC server, server: 127.0.0.1:14278, module: fibers_rpc::rpc_server:221
...
...
// Add a device and a bucket to store objects.
$ DEVICE_JSON='{"file": {"id": "file0", "server": "example", "filepath": "example/file0.lusf"}}'
$ curl -XPUT -d "$DEVICE_JSON" http://localhost:3000/v1/devices/file0
{"file":{"id":"file0","seqno":0,"weight":"auto","server":"example","capacity":19556691462,"filepath":"example/file0.lusf"}}%
$ BUCKET_JSON='{"metadata": {"id": "bucket0", "device": "file0", "tolerable_faults": 1}}'
$ curl -XPUT -d "$BUCKET_JSON" http://localhost:3000/v1/buckets/bucket0
{"metadata":{"id":"bucket0","seqno":0,"device":"file0","segment_count":1,"tolerable_faults":1}}%
// PUT and GET an object.
$ curl -XPUT -d 'your_object_data' http://localhost:3000/v1/buckets/bucket0/objects/your_object_id
$ curl http://localhost:3000/v1/buckets/bucket0/objects/your_object_id
your_object_data
Please see REST API for details and other available APIs.
For Frugalos Developers
Please see Developer's Guide.
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].