{"id":13588806,"url":"https://github.com/streamich/unionfs","last_synced_at":"2025-08-12T08:06:35.051Z","repository":{"id":33769442,"uuid":"37425798","full_name":"streamich/unionfs","owner":"streamich","description":"Use multiple fs modules at once","archived":false,"fork":false,"pushed_at":"2025-07-22T05:25:33.000Z","size":2711,"stargazers_count":223,"open_issues_count":20,"forks_count":24,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-07-22T07:39:10.387Z","etag":null,"topics":["filesystem","fs","union","unionfs"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/unionfs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/streamich.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2015-06-14T19:12:00.000Z","updated_at":"2025-07-18T04:28:08.000Z","dependencies_parsed_at":"2024-01-13T05:26:32.600Z","dependency_job_id":"7b3d5323-c695-4490-9f1c-0c87881acb18","html_url":"https://github.com/streamich/unionfs","commit_stats":{"total_commits":723,"total_committers":17,"mean_commits":"42.529411764705884","dds":"0.17150760719225444","last_synced_commit":"d01a85f145f1284236c8476561e939a2bb397b7e"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/streamich/unionfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Funionfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Funionfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Funionfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Funionfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streamich","download_url":"https://codeload.github.com/streamich/unionfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Funionfs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269484868,"owners_count":24424862,"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","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["filesystem","fs","union","unionfs"],"created_at":"2024-08-01T15:06:56.913Z","updated_at":"2025-08-12T08:06:34.993Z","avatar_url":"https://github.com/streamich.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","others"],"sub_categories":[],"readme":"# unionfs\n\nCreates a union of multiple `fs` file systems.\n\n[![][npm-img]][npm-url] [![][travis-badge]][travis-url]\n\n    npm install --save unionfs\n\nThis module allows you to use multiple objects that have file system `fs` API at the same time.\n\n```js\nimport { ufs } from 'unionfs';\nimport { fs as fs1 } from 'memfs';\nimport * as fs2 from 'fs';\n\nufs.use(fs1).use(fs2);\n\nufs.readFileSync(/* ... */);\n```\n\nUse this module with [`memfs`][memfs] and [`linkfs`][linkfs].\n`memfs` allows you to create virtual in-memory file system. `linkfs` allows you to redirect `fs` paths.\n\nYou can also use other _fs-like_ objects.\n\n```js\nimport * as fs from 'fs';\nimport { Volume } from 'memfs';\nimport * as MemoryFileSystem from 'memory-fs';\nimport { ufs } from 'unionfs';\n\nconst vol1 = Volume.fromJSON({ '/memfs-1': '1' });\nconst vol2 = Volume.fromJSON({ '/memfs-2': '2' });\n\nconst memoryFs = new MemoryFileSystem();\nmemoryFs.writeFileSync('/memory-fs', '3');\n\nufs.use(fs).use(vol1).use(vol2).use(memoryFs);\n\nconsole.log(ufs.readFileSync('/memfs-1', 'utf8')); // 1\nconsole.log(ufs.readFileSync('/memfs-2', 'utf8')); // 2\nconsole.log(ufs.readFileSync('/memory-fs', 'utf8')); // 3\n```\n\nYou can create a `Union` instance manually:\n\n```javascript\nimport { Union } from 'unionfs';\n\nvar ufs1 = new Union();\nufs1.use(fs).use(vol);\n\nvar ufs2 = new Union();\nufs2.use(fs).use(/*...*/);\n```\n\n[npm-url]: https://www.npmjs.com/package/unionfs\n[npm-img]: https://img.shields.io/npm/v/unionfs.svg\n[memfs]: https://github.com/streamich/memfs\n[unionfs]: https://github.com/streamich/unionfs\n[linkfs]: https://github.com/streamich/linkfs\n[fs-monkey]: https://github.com/streamich/fs-monkey\n[travis-url]: https://travis-ci.org/streamich/unionfs\n[travis-badge]: https://travis-ci.org/streamich/unionfs.svg?branch=master\n\n# License\n\n[Unlicense](./LICENSE) - public domain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamich%2Funionfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreamich%2Funionfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamich%2Funionfs/lists"}