Documentation
¶
Overview ¶
ghfs mounts GitHub as a FUSE filesystem. See README for details.
Architecture (post-gitstore refactor):
- REST (go-github) → enumerate owners/orgs + list their repos.
- Per-repo blobless clone (git clone --filter=blob:none --no-single-branch) into ~/.cache/ghfs/repos/<owner>/<repo>/git.
- In-memory tree index (git ls-tree -r -t -z) per (repo, ref).
- On file read: `git cat-file --batch` streams the blob into the shared content-addressed cache (~/.cache/ghfs/blobs/<shard>/<oid>), then FUSE reads from that cache file. Binary-safe; no 1 MB cap.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package core implements the ghfs FUSE filesystem as a tree of go-fuse nodes backed by a git blobless clone.
|
Package core implements the ghfs FUSE filesystem as a tree of go-fuse nodes backed by a git blobless clone. |
|
internal
|
|
|
auth
Package auth provides helpers for redacting credentials from strings before they are logged or returned in error messages.
|
Package auth provides helpers for redacting credentials from strings before they are logged or returned in error messages. |
|
blobcache
Package blobcache is the content-addressed blob store shared across all repos a ghfs process is serving.
|
Package blobcache is the content-addressed blob store shared across all repos a ghfs process is serving. |
|
githubhttp
Package githubhttp builds the layered HTTP transport chain used for all GitHub REST API calls: auth → httpcache (ETag + two-tier LRU/disk store) → revalidation suppressor.
|
Package githubhttp builds the layered HTTP transport chain used for all GitHub REST API calls: auth → httpcache (ETag + two-tier LRU/disk store) → revalidation suppressor. |
|
gitstore
Package gitstore wraps the git CLI to clone / fetch / tree-walk a blobless clone and stream blob content into a per-OID cache file.
|
Package gitstore wraps the git CLI to clone / fetch / tree-walk a blobless clone and stream blob content into a per-OID cache file. |
|
hydrator
Package hydrator turns a priority-queued stream of HydrationTasks into materialised blobs in a content-addressed cache.
|
Package hydrator turns a priority-queued stream of HydrationTasks into materialised blobs in a content-addressed cache. |
|
model
Package model defines the in-memory types shared between the gitstore, hydrator, reposrc, and core FUSE layers.
|
Package model defines the in-memory types shared between the gitstore, hydrator, reposrc, and core FUSE layers. |
|
reposrc
Package reposrc owns per-repository state: a blobless clone, its hydrator Service, and one in-memory tree per resolved ref.
|
Package reposrc owns per-repository state: a blobless clone, its hydrator Service, and one in-memory tree per resolved ref. |
Click to show internal directories.
Click to hide internal directories.