{"id":14967098,"url":"https://github.com/golemfactory/ya-vm-file-server","last_synced_at":"2025-07-10T19:03:12.764Z","repository":{"id":42572094,"uuid":"467872422","full_name":"golemfactory/ya-vm-file-server","owner":"golemfactory","description":"Cross-platform 9p file server implemented in Rust.","archived":false,"fork":false,"pushed_at":"2023-10-16T06:32:53.000Z","size":104,"stargazers_count":2,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-05T06:31:44.536Z","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":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/golemfactory.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":"2022-03-09T10:05:11.000Z","updated_at":"2022-10-27T04:48:19.000Z","dependencies_parsed_at":"2024-09-14T03:49:31.743Z","dependency_job_id":"7867c403-0e28-4a79-95f3-d9232e6fd8da","html_url":"https://github.com/golemfactory/ya-vm-file-server","commit_stats":{"total_commits":26,"total_committers":4,"mean_commits":6.5,"dds":0.1923076923076923,"last_synced_commit":"d5f0c9b9c74ff92fad7514e8a0410618ef7a42ec"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/golemfactory/ya-vm-file-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fya-vm-file-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fya-vm-file-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fya-vm-file-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fya-vm-file-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/golemfactory","download_url":"https://codeload.github.com/golemfactory/ya-vm-file-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/golemfactory%2Fya-vm-file-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264637977,"owners_count":23642087,"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-09-24T13:37:27.223Z","updated_at":"2025-07-10T19:03:12.748Z","avatar_url":"https://github.com/golemfactory.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ya-vm-file-server\n\nCross-platform 9p file server implemented in Rust/Tokio.\n\nThe work is based on:\n\nhttps://github.com/pfpacket/rust-9p\n\nAuthor of original implementation: Ryo Munakata\n\n## why separate project\n\nWe have to fork this library to enable cross-platform capabilities of p9 server.\nOriginal implementation worked only of Linux filesystem.\n* Emulating unix attributes\n* Maximum separation between server filesystem and client filesystem\n* Similar behavior when served on Linux and Windows machine.\n\n## Build\n\nTo compile only library part:\n\n```bash\ncargo build\n```\n\nTo compile binary:\n\n```bash\ncargo build --bin ya-vm-file-server --features=\"build-binary debug-msg\"\n```\n\n## Testing\n\nBuild docker:\n\n```\ndocker build . -t ya-vm-file-server\n```\n\nRunning docker tests\n\n```\ndocker-compose up\n```\n\n### Integration tests\nTests are half-automatic. First you need to prepare an environment:\n1) Launch 9p server:\n\n   ```\n   RUST_LOG=debug cargo run --features=\"build-binary\" -- --mount-point tests/9p_mnt_point\n   ```\n\n3) On other shell mount to the server:\n\n   ```\n   cd tests\n   sudo mount -t 9p -o version=9p2000.L,trans=tcp,debug=0x04,port=7878,uname=testuser 127.0.0.1 ./mnt_tests\n   ```\n\n4) Launch tests using **nightly** build:\n\n   ```\n   cargo +nightly test\n   ```\n\nYou should be able to see logging on the server side while tests are running.\n\n\n## Licence\n\nKeeping original implementation licence BSD-3\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Fya-vm-file-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgolemfactory%2Fya-vm-file-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgolemfactory%2Fya-vm-file-server/lists"}