{"id":15655162,"url":"https://github.com/inokinoki/dalfs","last_synced_at":"2025-03-09T17:31:02.832Z","repository":{"id":193733263,"uuid":"689394110","full_name":"Inokinoki/DalFs","owner":"Inokinoki","description":null,"archived":true,"fork":false,"pushed_at":"2024-03-11T19:54:00.000Z","size":58,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-24T15:22:30.478Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Inokinoki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-09T17:02:45.000Z","updated_at":"2025-01-04T02:26:57.000Z","dependencies_parsed_at":"2023-10-11T17:00:11.379Z","dependency_job_id":"448b9c6b-1709-4227-a302-43bc85a36b33","html_url":"https://github.com/Inokinoki/DalFs","commit_stats":null,"previous_names":["inokinoki/dalfs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inokinoki%2FDalFs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inokinoki%2FDalFs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inokinoki%2FDalFs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Inokinoki%2FDalFs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Inokinoki","download_url":"https://codeload.github.com/Inokinoki/DalFs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242728516,"owners_count":20175935,"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-10-03T12:56:46.793Z","updated_at":"2025-03-09T17:31:02.584Z","avatar_url":"https://github.com/Inokinoki.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DalFs: a Userspace filesystem based on OpenDAL\n\nCould be buggy and risky, please use a VM to test. Take your own risk.\n\nUpdate:\n- **2024/03/11: Not continue anymore. Any further efforts are welcomed in [OpenDAL ofs](https://github.com/apache/opendal/tree/main/bin/ofs#opendal-file-system).**\n\nCurrently, it can provide a Userspace filesystem backing by [OpenDAL](https://github.com/apache/incubator-opendal), thus supports the following backend as data sources:\n\n- Atomicserver\n- Azblob\n- Azdls\n- Cacache\n- Cos\n- Dashmap\n- Etcd\n- Foundationdb\n- Fs\n- Ftp\n- Gcs\n- Ghac\n- Hdfs\n- Http\n- Ipfs\n- Ipmfs\n- Memcached\n- Memory\n- MiniMoka\n- Moka\n- Obs\n- Onedrive\n- Gdrive\n- Dropbox\n- Oss\n- Persy\n- Redis\n- Postgresql\n- Rocksdb\n- S3\n- Sftp\n- Sled\n- Supabase\n- VercelArtifacts\n- Wasabi\n- Webdav\n- Webhdfs\n- Redb\n- Tikv\n\nThe functionnality is very limited right now, because I just use several hours to come up with the idea and implement it.\n\nHere are the main fs functionnalities implemented:\n\n- Read directory\n- Read file\n- Read attributes (not well implemented)\n- Create directory\n- Create file\n- Write file\n\nor not yet implemented:\n- Permission (?)\n- Fsync (?)\n- ...\n\n## Build\n\nYou might need to install `libfuse-dev` in order to use Rust `fuser` crate.\n\nJust run the following command to build it:\n\n```bash\ncargo build\n```\n\n## Run\n\nTo run, you will need to provide a series of \n\n```bash\ncargo run --release -- \u003cmount-point\u003e -t \u003cscheme\u003e ...\n```\n\nwhere the `mount-point` is a path to mount the filesystem; `scheme` is an OpenDAL scheme, all in lowercase (e.g. \"ftp\", \"s3\", \"fs\", etc.).\n\nThe remaining parameters are `\u003ckey\u003e=\u003cvalue\u003e[,\u003ckey\u003e=\u003cvalue\u003e]` pairs needed by OpenDAL schemes.\n\nCurrently `fs` and `s3` backends are tested. For example, the following command will mount a filesystem using the data in your `/tmp` directory to the mount-point.\n\n```bash\ncargo run --release -- \u003cmount-point\u003e -t fs -o root=/tmp\n```\n\n\u003cimg width=\"1185\" alt=\"image\" src=\"https://github.com/Inokinoki/DalFs/assets/8311300/c591ffe1-be35-4c79-8ffa-368c66872b9f\"\u003e\n\nAnd the following mount a filesystem backed by s3:\n\n```bash\ncargo run --release \u003cmount-point\u003e -t s3 -o root=\u003cs3-root-path\u003e,endpoint=\u003cend-point-url\u003e,bucket=\u003cbucket\u003e,access_key_id=\u003caccess-key-id\u003e,secret_access_key=\u003csecret-access-key\u003e,region=auto\n```\n\nFor more details and more backends, please check [OpenDAL scheme doc](https://opendal.apache.org/docs/rust/opendal/enum.Scheme.html).\n\n## Contribution\n\nAll kinds of contributions are welcomed. But I will firstly work on the functionnalities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finokinoki%2Fdalfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finokinoki%2Fdalfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finokinoki%2Fdalfs/lists"}