{"id":16949760,"url":"https://github.com/tailhook/tk-sendfile","last_synced_at":"2025-08-30T18:13:38.065Z","repository":{"id":57669942,"uuid":"70846813","full_name":"tailhook/tk-sendfile","owner":"tailhook","description":"A thread pool for rust/tokio that can process file requests and send data to the socket with zero copy (using sendfile)","archived":false,"fork":false,"pushed_at":"2017-03-30T15:01:37.000Z","size":30,"stargazers_count":29,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-10T19:43:04.800Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tailhook.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-13T20:46:22.000Z","updated_at":"2025-06-13T03:13:23.000Z","dependencies_parsed_at":"2022-09-26T20:40:41.050Z","dependency_job_id":null,"html_url":"https://github.com/tailhook/tk-sendfile","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/tailhook/tk-sendfile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Ftk-sendfile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Ftk-sendfile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Ftk-sendfile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Ftk-sendfile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tailhook","download_url":"https://codeload.github.com/tailhook/tk-sendfile/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Ftk-sendfile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272885660,"owners_count":25009672,"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-30T02:00:09.474Z","response_time":77,"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":[],"created_at":"2024-10-13T21:56:00.426Z","updated_at":"2025-08-30T18:13:38.022Z","avatar_url":"https://github.com/tailhook.png","language":"Rust","readme":"Sendfile for Tokio\n==================\n\n:Status: alpha\n:Documentation: http://docs.rs/tk-sendfile\n\nA thread pool that can process file requests and send data to the socket\nwith zero copy (using sendfile).\n\nChallenges:\n\n1. While ``sendfile`` is non-blocking when writing to socket, it blocks for\n   disk access for two cases: initial ``open()`` and for reading file inside\n   the ``sendfile()`` system call itself\n2. Doing more than single ``sendfile`` operation requires some bookkeeping\n3. It should be possible to implement file cache (both opened files and\n   in-memory file data) transparently for the user\n4. [TODO] Serving user-specified file paths requires non-trivial code to\n   prevent symlink attacks\n\n\nLicense\n=======\n\nLicensed under either of\n\n* Apache License, Version 2.0,\n  (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)\n* MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT)\n  at your option.\n\nContribution\n------------\n\nUnless you explicitly state otherwise, any contribution intentionally\nsubmitted for inclusion in the work by you, as defined in the Apache-2.0\nlicense, shall be dual licensed as above, without any additional terms or\nconditions.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Ftk-sendfile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftailhook%2Ftk-sendfile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Ftk-sendfile/lists"}