{"id":25827023,"url":"https://github.com/guangie88/ghafs","last_synced_at":"2026-05-10T12:03:38.274Z","repository":{"id":64305155,"uuid":"222281246","full_name":"guangie88/ghafs","owner":"guangie88","description":"Experimental GitHub Release Assets as FUSE filesystem mount","archived":false,"fork":false,"pushed_at":"2020-05-20T18:17:02.000Z","size":105,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T12:37:07.472Z","etag":null,"topics":["fuse","github","github-releases"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/guangie88.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}},"created_at":"2019-11-17T16:56:06.000Z","updated_at":"2024-06-20T12:37:07.473Z","dependencies_parsed_at":"2023-01-15T10:30:42.275Z","dependency_job_id":null,"html_url":"https://github.com/guangie88/ghafs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangie88%2Fghafs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangie88%2Fghafs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangie88%2Fghafs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guangie88%2Fghafs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guangie88","download_url":"https://codeload.github.com/guangie88/ghafs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241176623,"owners_count":19922732,"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":["fuse","github","github-releases"],"created_at":"2025-02-28T15:52:09.926Z","updated_at":"2026-05-10T12:03:33.225Z","avatar_url":"https://github.com/guangie88.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `ghafs`\n\n[![CI Status](https://img.shields.io/github/workflow/status/guangie88/ghafs/ci/master?label=ci\u0026logo=github\u0026style=for-the-badge)](https://github.com/guangie88/ghafs/actions)\n\nExperimental GitHub Release Assets as FUSE filesystem mount.\n\nThis set-up only works for Linux and MacOS, since Windows does not support the\nconcept of FUSE.\n\n## How to Use\n\nAssuming that `ghafs` executable has already been built, the actual usage help\nlooks like this:\n\n```bash\nghafs [--token TOKEN] [--allow-other] MOUNTPOINT OWNER REPO\n```\n\nNote that you should not need `root` privileges for the above command as long as\nthe mountpoint is a user mountable directory.\n\nA proper example looks something like this:\n\n```bash\nmkdir -p /tmp/tera-cli\n./ghafs /tmp/tera-cli guangie88 tera-cli\n```\n\nNote that you should try to provide the GitHub access token so that you have a\nmuch higher rate limit for GitHub API even for public repos. Also if you wish\nfor another user (e.g. `root`) to see the mounted directory, you will need to\nspecify the `--allow-other` flag.\n\nAssuming you have successfully mounted after following the above given command,\nyou should then be able to traverse into `/tmp/tera-cli` to look at the various\nrelease tags and assets with another terminal / file browser.\n\nTo unmount, currently one has to do the following:\n\n1. Press `CTRL-C` on the running `ghafs` to terminate the application\n2. Make sure no other terminal / application is running at the mountpoint\n3. If you are on Linux, you can run this to umount:\n   `fusermount -u /tmp/tera-cli`.\n   For MacOS, run `umount /tmp/tera-cli` instead,\n   which may or may not require `sudo` (not tested).\n\n## How to Build\n\nYou will need `go` of version 1.12 or higher for Go module support.\n\nSimply run\n\n```bash\ngo build -v ./...\n```\n\nThis will generate the `ghafs` executable.\n\nIf you prefer a fully statically linked executable that can be deployed\nanywhere, run with `CGO_ENABLED=0` env var disabled instead, like the following:\n\n```bash\nCGO_ENABLED=0 go build -v ./...\n```\n\nTo check that it is indeed fully statically linked, run\n\n```bash\nldd ghafs\n```\n\nAnd make sure it reads along the line of \"not a dynamic executable\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguangie88%2Fghafs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguangie88%2Fghafs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguangie88%2Fghafs/lists"}