{"id":29151347,"url":"https://github.com/karpeleslab/vfs","last_synced_at":"2025-07-01T00:09:07.719Z","repository":{"id":134252740,"uuid":"233353138","full_name":"KarpelesLab/vfs","owner":"KarpelesLab","description":"Virtual filesystem abstraction for Go","archived":false,"fork":false,"pushed_at":"2023-06-30T06:59:42.000Z","size":48,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T00:09:03.910Z","etag":null,"topics":["golang","vfs"],"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/KarpelesLab.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":"2020-01-12T07:12:13.000Z","updated_at":"2024-01-16T23:01:13.000Z","dependencies_parsed_at":"2023-07-21T18:03:49.642Z","dependency_job_id":null,"html_url":"https://github.com/KarpelesLab/vfs","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/KarpelesLab/vfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarpelesLab%2Fvfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarpelesLab%2Fvfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarpelesLab%2Fvfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarpelesLab%2Fvfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KarpelesLab","download_url":"https://codeload.github.com/KarpelesLab/vfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarpelesLab%2Fvfs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262870877,"owners_count":23377314,"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":["golang","vfs"],"created_at":"2025-07-01T00:09:03.472Z","updated_at":"2025-07-01T00:09:07.660Z","avatar_url":"https://github.com/KarpelesLab.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/KarpelesLab/vfs.svg)](https://travis-ci.org/KarpelesLab/vfs)\n[![GoDoc](https://godoc.org/github.com/KarpelesLab/vfs?status.svg)](https://godoc.org/github.com/KarpelesLab/vfs)\n[![Coverage Status](https://coveralls.io/repos/github/KarpelesLab/vfs/badge.svg?branch=master)](https://coveralls.io/github/KarpelesLab/vfs?branch=master)\n\n# Filesystem Abstraction in Go\n\nYet another one, created because none [of the bazillon existing Golang VFS](https://awesome-go.com/#files) matched\nthe needs we have.\n\nSpecifically, many tend to be either oriented toward local filesystems or cloud\nstorage providers. Typically, both are very different. Local filesystems allow\nfiles to be modified, while cloud providers typically require a whole file to\nbe re-uploaded for any change. As such, cloud-oriented libraries may support\nlocal filesystem but have no API for partial writes locally.\n\nHere, cloud storage solutions such as AWS S3 are considered \"keyvals\", similar\nto databases where changing a byte in a value requires rewriting the whole\nvalue.\nThe goal is to be able to offer converter interfaces that expose such\nbackends as proper filesystems supporting partial writes.\n\n# Focus\n\nThis implementation focuses on the following goals:\n\n* Stay as close as possible to filesystem concepts\n* Be as compatible as possible with Golang's interfaces\n* Be as simple as possible to extend\n* Allow working with limited key/value backends\n\n# Features\n\n* Filesystem Backends:\n  * localfs filesystem\n  * memfs\n  * zipfs (read only)\n* Keyval Backends:\n  * memkv\n  * boltkv using [boltdb](https://github.com/boltdb/bolt)\n* Converters:\n  * vdirfs: provides directory indexation/listing for backends which do not have this feature (such as zipfs)\n\n## Planned\n\n* Support for a wide range of backends (AWS S3, etc)\n* Support for frontends (fuse, http, etc)\n* Middlewares (keyval→filesystem adapters, encryption, etc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarpeleslab%2Fvfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarpeleslab%2Fvfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarpeleslab%2Fvfs/lists"}