All Projects → lostatc → acid-store

lostatc / acid-store

Licence: Apache-2.0 license
A library for secure, deduplicated, transactional, and verifiable data storage

Programming Languages

rust
11053 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to acid-store

chicon-rs
A file abstraction system for Rust
Stars: ✭ 55 (+14.58%)
Mutual labels:  filesystem, s3, sftp
Rclone
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Yandex Files
Stars: ✭ 30,541 (+63527.08%)
Mutual labels:  s3, sftp, rclone
S3fs Fuse
FUSE-based file system backed by Amazon S3
Stars: ✭ 5,733 (+11843.75%)
Mutual labels:  fuse, filesystem, s3
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+352.08%)
Mutual labels:  fuse, compression, filesystem
Goofys
a high-performance, POSIX-ish Amazon S3 file system written in Go
Stars: ✭ 3,932 (+8091.67%)
Mutual labels:  fuse, filesystem, s3
Infinit
The Infinit policy-based software-defined storage platform.
Stars: ✭ 363 (+656.25%)
Mutual labels:  fuse, filesystem, s3
dedupsqlfs
Deduplicating filesystem via Python3, FUSE and SQLite
Stars: ✭ 24 (-50%)
Mutual labels:  fuse, compression, deduplication
rclone-drive
☁️Simple web cloud storage based on rclone, transform cloud storage (s3, google drive, one drive, dropbox) into own custom web-based storage
Stars: ✭ 30 (-37.5%)
Mutual labels:  s3, rclone
luufs
Lazy man's, user-mode union file system
Stars: ✭ 28 (-41.67%)
Mutual labels:  fuse, filesystem
fusell-seed
FUSE (the low-level interface) file system boilerplate 📂 🔌 💾
Stars: ✭ 13 (-72.92%)
Mutual labels:  fuse, filesystem
Bash-Backup-Script
A small script to upload backup tar to an external storage service
Stars: ✭ 21 (-56.25%)
Mutual labels:  sftp, rclone
zpaqfranz
Deduplicating archiver with encryption and paranoid-level tests. Swiss army knife for the serious backup and disaster recovery manager. Ransomware neutralizer. Win/Linux/Unix
Stars: ✭ 86 (+79.17%)
Mutual labels:  compression, deduplication
ob bulkstash
Bulk Stash is a docker rclone service to sync, or copy, files between different storage services. For example, you can copy files either to or from a remote storage services like Amazon S3 to Google Cloud Storage, or locally from your laptop to a remote storage.
Stars: ✭ 113 (+135.42%)
Mutual labels:  s3, rclone
SSFS
Simple & Stupid Filesystem (Using FUSE)
Stars: ✭ 64 (+33.33%)
Mutual labels:  fuse, filesystem
fs-fuse
Export any Node.js `fs`-like object as a FUSE filesystem
Stars: ✭ 32 (-33.33%)
Mutual labels:  fuse, filesystem
fuse-nfs-crossbuild-scripts
fuse-nfs for windows using dokany
Stars: ✭ 35 (-27.08%)
Mutual labels:  fuse, filesystem
cubefs
CubeFS is a cloud native distributed storage platform.
Stars: ✭ 3,062 (+6279.17%)
Mutual labels:  filesystem, s3
terraform-aws-sftp
This terraform module is used to create sftp on AWS for S3.
Stars: ✭ 20 (-58.33%)
Mutual labels:  s3, sftp
vk-music-fs
FUSE file system for VK audios
Stars: ✭ 34 (-29.17%)
Mutual labels:  fuse, filesystem
go-fsimpl
Go io/fs.FS filesystem implementations for various URL schemes
Stars: ✭ 225 (+368.75%)
Mutual labels:  filesystem, s3

Tests codecov crates.io docs.rs

acid-store

acid-store is a library for secure, deduplicated, transactional, and verifiable data storage.

This library provides high-level abstractions for data storage over a number of storage backends. The goal is to decouple how you access your data from where you store it. You can access your data as an object store, a virtual file system, a persistent collection, or a content-addressable storage, regardless of where the data is stored. Out of the box, this library supports the local file system, SQLite, Redis, Amazon S3, SFTP, and many cloud providers as storage backends. Storage backends are easy to implement, and this library builds on top of them to provide features like encryption, compression, deduplication, locking, and atomic transactions.

For details and examples, see the documentation.

⚠️ This project is still experimental; it experiences frequent breaking API changes and requires more testing. This project is not ready for use in production environments. Testers are always appreciated, but please remember to back up your data! Also keep in mind that this code has not been audited for security.

Features

  • Optional encryption of all data and metadata using XChaCha20-Poly1305 and Argon2, powered by libsodium
  • Optional compression using LZ4
  • Optional content-based deduplication using the ZPAQ chunking algorithm
  • Supports packing data into fixed-size blocks to avoid metadata leakage
  • Integrity checking of data and metadata using checksums and (if encryption is enabled) AEAD
  • Transactional operations providing atomicity, consistency, isolation, and durability (ACID)
  • Two-phase locking protects against concurrent access from multiple clients
  • Copy-on-write semantics
  • New storage backends are easy to implement

Abstractions

This library provides the following abstractions for data storage.

  • An object store which maps keys to seekable binary blobs
  • A virtual file system which supports file metadata, special files, sparse files, hard links, importing and exporting files to the local OS file system, and being mounted via FUSE
  • A persistent, heterogeneous, map-like collection
  • An object store with support for content versioning
  • A content-addressable storage which allows for accessing data by its cryptographic hash

Backends

This library provides the following storage backends out of the box.

  • Local file system directory
  • SQLite
  • Redis
  • Amazon S3
  • SFTP
  • Cloud storage via rclone
  • In-Memory

Benchmarks

The following results show read and write speeds for an in-memory repository with various configurations. An in-memory repository is used to make benchmark results more consistent between runs and between machines. You can run the benchmarks yourself by running cargo bench --all-features.

Specs

Spec Value
Processor Ryzen 5 1600x
Memory 32 GB (3200MHz)
OS Linux 5.11

Results

Chunking Packing Encryption Compression Read Write
Fixed None None None 6090 MiB/s 1920 MiB/s
ZPAQ None None None 2670 MiB/s 520 MiB/s
Fixed Fixed XChaCha20-Poly1305 None 870 MiB/s 610 MiB/s
ZPAQ Fixed XChaCha20-Poly1305 None 840 MiB/s 300 MiB/s
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].