https://github.com/131/casfs
local content-addressable file system
https://github.com/131/casfs
Last synced: about 1 year ago
JSON representation
local content-addressable file system
- Host: GitHub
- URL: https://github.com/131/casfs
- Owner: 131
- Created: 2019-08-18T13:46:19.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-05-09T14:01:24.000Z (about 4 years ago)
- Last Synced: 2025-04-23T06:47:41.268Z (about 1 year ago)
- Language: JavaScript
- Size: 41 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Casfs, a local content-addressable file system.
// make it work, make is fast, make it clean
[](https://github.com/131/casfs/actions/workflows/test.yml)
[](https://coveralls.io/github/131/casfs?branch=master)
[](https://www.npmjs.com/package/casfs)
[](http://opensource.org/licenses/MIT)
[](https://www.npmjs.com/package/eslint-plugin-ivs)


# Motivation
[Casfs](https://github.com/131/casfs) in a **file system**, with a very simple design. File metadata (inode table) is stored in a sqlite database ([see dedicated sqlfs project](https://github.com/131/sqlfs)), and file contents relies on a [content-addressable storage](https://en.wikipedia.org/wiki/Content-addressable_storage). [Casfs](https://github.com/131/casfs) is mainly designed to be a test platform / support backend for **[cloudfs](https://github.com/131/cloudfs)**.
# API status
**Stable** !
# Roadmap
- [X] Writable Inodes POC (rename, delete, mkdir)
- [X] Initial test flow
- [X] Proper deployment flow
- [X] Writable/editable files
- [X] a bit better test suite (win/linux)
- [X] switch to dedicated project / slice cloudfs
- [X] Readable big files
- [X] Writable big files (continuous mode)
- [X] Publish read-only mode
# Background daemon & pending tasks
- [ ] With full test suite (e.g. winfsp/secfs test suite)
- ~~[ ] Append file/big files~~ (postponed)
- ~~[ ] Embbed configuration/web browse server~~ (rejected to cloudfs)
- ~~[ ] Garbage collection~~ (rejected to cloudfs ?)
# Features
* Simple by design
* Unlimited file size (casfs is mostly designed to store and manage 100k files of 8GB+ - aka HD BR rips)
* Available on all platforms (linux & Windows)
* Fast (sqlite is actually fastest than most file system)
* large subset of POSIX including reading/writing files, directories, rename, symlinks, mode, uid/gid, and extended attributes
* renames do not invole any kind of server side copy
* native file deduplication - through CAS
* Compatible with existing CAS
## Additional features
* nice configuration GUI
* Directroy tree snapshot / rollback / sealing (pure SQL)
* Instant file deletion (pure SQL)
* Server side TAR creation (so content duplication) - through static large object.
# Related
* [cloudfs](https://github.com/131/cloudfs) main application
* [s3ql](https://github.com/s3ql/) python based, non CAS (but fixed block)
# Credits
* [131 - author](https://github.com/131)