{"id":18544738,"url":"https://github.com/131/casfs","last_synced_at":"2025-05-15T05:34:16.382Z","repository":{"id":57194721,"uuid":"203009349","full_name":"131/casfs","owner":"131","description":"local content-addressable file system","archived":false,"fork":false,"pushed_at":"2022-05-09T14:01:24.000Z","size":42,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-23T06:47:41.268Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/131.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-18T13:46:19.000Z","updated_at":"2023-06-21T12:01:28.000Z","dependencies_parsed_at":"2022-09-16T05:14:36.224Z","dependency_job_id":null,"html_url":"https://github.com/131/casfs","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fcasfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fcasfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fcasfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fcasfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/131","download_url":"https://codeload.github.com/131/casfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254282811,"owners_count":22045130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T20:17:27.558Z","updated_at":"2025-05-15T05:34:16.359Z","avatar_url":"https://github.com/131.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Casfs, a local content-addressable file system.\n\n// make it work, make is fast, make it clean\n\n\n[![Build Status](https://github.com/131/casfs/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/131/casfs/actions/workflows/test.yml)\n[![Coverage Status](https://coveralls.io/repos/github/131/casfs/badge.svg?branch=master)](https://coveralls.io/github/131/casfs?branch=master)\n[![Version](https://img.shields.io/npm/v/casfs.svg)](https://www.npmjs.com/package/casfs)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)\n[![Code style](https://img.shields.io/badge/code%2fstyle-ivs-green.svg)](https://www.npmjs.com/package/eslint-plugin-ivs)\n\n![Available platform](https://img.shields.io/badge/platform-win32-blue.svg)\n![Available platform](https://img.shields.io/badge/platform-linux-blue.svg)\n\n\n# Motivation\n\n[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)**.\n\n\n# API status\n**Stable** !\n\n# Roadmap\n\n- [X] Writable Inodes POC (rename, delete, mkdir)\n- [X] Initial test flow\n- [X] Proper deployment flow\n- [X] Writable/editable files\n- [X] a bit better test suite (win/linux)\n- [X] switch to dedicated project / slice cloudfs\n- [X] Readable big files\n- [X] Writable big files (continuous mode)\n- [X] Publish read-only mode\n\n# Background daemon \u0026 pending tasks\n- [ ] With full test suite (e.g. winfsp/secfs test suite)\n- ~~[ ] Append file/big files~~  (postponed)\n- ~~[ ] Embbed configuration/web browse server~~ (rejected to cloudfs)\n- ~~[ ] Garbage collection~~ (rejected to cloudfs ?)\n\n\n# Features\n* Simple by design\n* Unlimited file size (casfs is mostly designed to store and manage 100k files of 8GB+ - aka HD BR rips)\n* Available on all platforms (linux \u0026 Windows)\n* Fast (sqlite is actually fastest than most file system)\n* large subset of POSIX including reading/writing files, directories, rename,  symlinks, mode, uid/gid, and extended attributes\n* renames do not invole any kind of server side copy\n* native file deduplication - through CAS\n* Compatible with existing CAS\n\n## Additional features\n* nice configuration GUI\n* Directroy tree snapshot / rollback / sealing (pure SQL)\n* Instant file deletion (pure SQL)\n* Server side TAR creation (so content duplication) - through static large object.\n\n\n# Related\n* [cloudfs](https://github.com/131/cloudfs) main application\n* [s3ql](https://github.com/s3ql/) python based, non CAS (but fixed block)\n\n# Credits\n* [131 - author](https://github.com/131)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fcasfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F131%2Fcasfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fcasfs/lists"}