Crates.io | acid-store |
lib.rs | acid-store |
version | 0.14.2 |
source | src |
created_at | 2020-02-09 00:06:10.614077 |
updated_at | 2024-03-03 15:23:27.004334 |
description | A transactional and deduplicating virtual file system |
homepage | https://github.com/lostatc/acid-store |
repository | https://github.com/lostatc/acid-store |
max_upload_size | |
id | 206485 |
size | 656,707 |
⚠ UNMAINTAINED
I am no longer maintaining this project.
acid-store is a Rust library for secure, deduplicated, and transactional data storage.
This library provides abstractions for data storage over a number of storage backends. You can turn any storage backend into an encrypted and deduplicated object store, persistent collection, or virtual file system (which can be mounted via FUSE).
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 encryption, compression, content-based deduplication, locking, and atomic transactions.
For details and examples, see the documentation.
⚠ This project is experimental! ⚠
This project experiences frequent breaking API changes and hasn't seen significant real-world usage. This project is not ready for use in production environments. Also keep in mind that this code has not been audited for security.
This library provides the following abstractions for data storage.
This library provides the following storage backends out of the box.
The following results show read and write speeds using an in-memory storage
backend. You can run the benchmarks yourself by running cargo bench --features 'encryption'
.
Spec | Value |
---|---|
Processor | Ryzen 5 1600x |
Memory | 32 GB DDR4 (3200MHz) |
OS | Linux 5.11 |
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 |
The last two stable Rust releases are supported. Older releases may be supported as well.
The MSRV will only be increased when necessary to take advantage of new Rust features—not every time there is a new Rust release. An increase in the MSRV will be accompanied by a minor semver bump if >=1.0.0 or a patch semver bump if <1.0.0.
This policy was added with v0.13.0.
Prior to version 1.0.0, breaking changes will be accompanied by a minor version bump, and new features and bug fixes will be accompanied by a patch version bump.
This policy was added with v0.13.0.
Here are some similar projects to check out:
Copyright © 2019-2023 Wren Powell
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.