{"id":30661605,"url":"https://github.com/aspectunk/russh-sftp","last_synced_at":"2025-08-31T15:24:16.854Z","repository":{"id":64497935,"uuid":"576250824","full_name":"AspectUnk/russh-sftp","owner":"AspectUnk","description":"SFTP subsystem supported server and client for Russh","archived":false,"fork":false,"pushed_at":"2025-04-24T21:44:54.000Z","size":213,"stargazers_count":75,"open_issues_count":15,"forks_count":29,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-31T08:53:46.713Z","etag":null,"topics":["ftp","ftp-client","ftp-server","native","rust","sftp","sftp-client","sftp-server"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AspectUnk.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-12-09T11:20:58.000Z","updated_at":"2025-08-24T06:58:03.000Z","dependencies_parsed_at":"2024-02-11T19:56:32.496Z","dependency_job_id":"15865724-53b9-4c0f-8328-d3798ee54cc2","html_url":"https://github.com/AspectUnk/russh-sftp","commit_stats":{"total_commits":41,"total_committers":4,"mean_commits":10.25,"dds":0.2682926829268293,"last_synced_commit":"eb1c2bf50a0ba11666642e849abaf9fd80ee7721"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AspectUnk/russh-sftp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspectUnk%2Frussh-sftp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspectUnk%2Frussh-sftp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspectUnk%2Frussh-sftp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspectUnk%2Frussh-sftp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AspectUnk","download_url":"https://codeload.github.com/AspectUnk/russh-sftp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AspectUnk%2Frussh-sftp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272996655,"owners_count":25028164,"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-31T02:00:09.071Z","response_time":79,"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":["ftp","ftp-client","ftp-server","native","rust","sftp","sftp-client","sftp-server"],"created_at":"2025-08-31T15:24:13.277Z","updated_at":"2025-08-31T15:24:16.844Z","avatar_url":"https://github.com/AspectUnk.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Russh SFTP\nSFTP subsystem supported server and client for [Russh](https://github.com/warp-tech/russh) and more!\n\nCrate can provide compatibility with anything that can provide the raw data stream in and out of the subsystem channel.\\\nImplemented according to [version 3 specifications](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) (most popular).\n\nThe main idea of the project is to provide an implementation for interacting with the protocol at any level.\n\n## Examples\n- [Client example](https://github.com/AspectUnk/russh-sftp/blob/master/examples/client.rs)\n- [Simple server](https://github.com/AspectUnk/russh-sftp/blob/master/examples/server.rs)\n\n## What's ready?\n- [x] Basic packets\n- [x] Extended packets\n- [x] Simplification for file attributes\n- [x] Client side\n- [x] Client example\n- [x] Server side\n- [x] Simple server example\n- [x] Extension support: `limits@openssh.com`, `hardlink@openssh.com`, `fsync@openssh.com`, `statvfs@openssh.com`\n- [ ] Full server example\n- [ ] Unit tests\n- [ ] Workflow\n\n## Adopters\n\n- [kty](https://github.com/grampelberg/kty) - The terminal for Kubernetes.\n\n## Some words\nThanks to [@Eugeny](https://github.com/Eugeny) (author of the [Russh](https://github.com/warp-tech/russh)) for his prompt help and finalization of Russh API\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspectunk%2Frussh-sftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faspectunk%2Frussh-sftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faspectunk%2Frussh-sftp/lists"}