{"id":16839079,"url":"https://github.com/fathyb/zstd-proxy","last_synced_at":"2025-10-25T09:02:32.112Z","repository":{"id":64973305,"uuid":"554753884","full_name":"fathyb/zstd-proxy","owner":"fathyb","description":"High-performance real-time TCP compression","archived":false,"fork":false,"pushed_at":"2022-12-19T23:22:46.000Z","size":50,"stargazers_count":78,"open_issues_count":1,"forks_count":8,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-14T15:51:50.038Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fathyb.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-20T10:37:50.000Z","updated_at":"2024-10-26T10:00:30.000Z","dependencies_parsed_at":"2023-01-13T15:01:47.333Z","dependency_job_id":null,"html_url":"https://github.com/fathyb/zstd-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathyb%2Fzstd-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathyb%2Fzstd-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathyb%2Fzstd-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fathyb%2Fzstd-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fathyb","download_url":"https://codeload.github.com/fathyb/zstd-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244912800,"owners_count":20530764,"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-10-13T12:28:48.605Z","updated_at":"2025-10-25T09:02:27.060Z","avatar_url":"https://github.com/fathyb.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zstd-proxy\n\nHigh-performance TCP/UNIX proxy with Zstd compression, with Node.js bindings.\n\nOptimized for a low count (\u003c 100) of medium-lived connections (~ 3 minutes) with high-throughput (~ 500Mbps) and low-latency requirements (\u003c 1ms). It uses io_uring on Linux with fixed buffers to transmit without any syscall.\n\nAn optional zero-copy send mode can be enabled, but it requires Linux 6 and seems to crash on ARM.\n\n## Usage\n\n### CLI\n\n- Create a server on port `9001`, compress `9001` to `9002` and decompress `9002` to `9001`\n```console\n$ zstd-proxy --listen=9001 --connect=9002 --compress=listen\n```\n- Create a server on port `9002`, compress `9003` to `9002` and decompress `9002` to `9003`\n```console\n$ zstd-proxy --listen=9002 --connect=9003 --compress=connect\n```\n\n### Library\n\n- Create a server on port `9001`, compress `9001` to `9002` and decompress `9002` to `9001`\n```ts\nimport { zstdProxy } from 'zstd-proxy'\n\ncreateServer({ pauseOnConnect: true })\n    .on('connection', server =\u003e {\n        const client: Socket = connect(9002)\n            .on('connect', () =\u003e zstdProxy({ compress: server, to: client }))\n    })\n    .listen(9001)\n```\n- Create a server on port `9002`, compress `9003` to `9002` and decompress `9002` to `9003`\n```ts\nimport { zstdProxy } from 'zstd-proxy'\n\ncreateServer({ pauseOnConnect: true })\n    .on('connection', server =\u003e {\n        const client: Socket = connect(9003)\n            .on('connect', () =\u003e zstdProxy({ compress: client, to: server }))\n    })\n    .listen(9002)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathyb%2Fzstd-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffathyb%2Fzstd-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffathyb%2Fzstd-proxy/lists"}