https://github.com/temoto/extremofile
Durable local storage. File that survives failures.
https://github.com/temoto/extremofile
durability persistence status-active
Last synced: over 1 year ago
JSON representation
Durable local storage. File that survives failures.
- Host: GitHub
- URL: https://github.com/temoto/extremofile
- Owner: temoto
- License: cc0-1.0
- Created: 2019-07-19T09:09:11.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-10-05T10:27:27.000Z (almost 7 years ago)
- Last Synced: 2025-01-28T21:24:04.320Z (over 1 year ago)
- Topics: durability, persistence, status-active
- Language: Go
- Size: 11.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# What
Extremofile is single binary value persistent storage that makes best effort to read your data back unchanged. [](https://godoc.org/github.com/temoto/extremofile)
## Use case
Answer yes to all questions:
- Need to persist small amount of data? It costs 2 full data writes + fsync on each store operation.
- Expect power loss or storage media degradation? If you have reliable power supply and storage, that's awesome.
- Network backup is not available? If you have robust remote database available when you need it, that's great.
Failure modes tolerated:
- power loss
- random data corrupted in one replica
Failure modes detected:
- almost any data corruption, limited to checksum mismatch
Failures not handled by design: human error, files deleted.
## API guarantees
- You only get valid value bytes.
- You may get value/writer together with non-critical error.
- Internal storage format may change with major version.
- Library will read one previous storage format.
- Thread-safe.
- Not safe to use by multiple processes, data may be corrupted.
# FAQ
- > Why not SQLite or goleveldb or X?
I could not find a ready solution that actually survives storage media degradation, rather than just reporting error. If you need similar durability with complex data structure, wrap your database of choice with automatic backup.
# Flair
[](https://travis-ci.org/temoto/extremofile)
[](https://codecov.io/gh/temoto/extremofile)
[](https://goreportcard.com/report/github.com/temoto/extremofile)