{"id":34854008,"url":"https://github.com/app-fast/fpgo","last_synced_at":"2026-01-12T06:30:52.137Z","repository":{"id":143462930,"uuid":"615373568","full_name":"app-fast/fpgo","owner":"app-fast","description":"Fasthttp forward proxy","archived":false,"fork":false,"pushed_at":"2025-12-27T03:15:49.000Z","size":65,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T04:54:34.660Z","etag":null,"topics":["fasthttp","forward-proxy","forwarding-proxy","http-proxy","https-proxy","proxy","tunneling","websocket-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","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/app-fast.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-17T14:47:07.000Z","updated_at":"2025-12-27T03:15:52.000Z","dependencies_parsed_at":"2024-02-13T09:29:33.084Z","dependency_job_id":"4f464f9c-9642-4957-adc6-71cec8f616c9","html_url":"https://github.com/app-fast/fpgo","commit_stats":null,"previous_names":["app-fast/fpgo"],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/app-fast/fpgo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-fast%2Ffpgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-fast%2Ffpgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-fast%2Ffpgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-fast%2Ffpgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/app-fast","download_url":"https://codeload.github.com/app-fast/fpgo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-fast%2Ffpgo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["fasthttp","forward-proxy","forwarding-proxy","http-proxy","https-proxy","proxy","tunneling","websocket-proxy"],"created_at":"2025-12-25T19:57:13.411Z","updated_at":"2026-01-12T06:30:52.132Z","avatar_url":"https://github.com/app-fast.png","language":"Go","readme":"## Fasthttp forward proxy\n\n### ✅ Features\n\n- [Fasthttp](https://github.com/valyala/fasthttp)\n- http/https proxy\n- ws/wss proxy\n- IPv4/IPv6 supported (See [#2](https://github.com/app-fast/fpgo/pull/2))\n- Multi DNS nameserves (-n \"1.1.1.1,8.8.8.8\")\n- Graceful shutdown\n- Proxy Chain (-x \"second.proxy.addr:8080\")\n- Battle-Tested and Production-Ready\n\n### 📙 Usage\n\n```\n./fpgo -h # Show usage\n\nUsage of ./fpgo:\n  -a string\n    \tListen address. (default \":13002\")\n  -c int\n    \tMax concurrency for fasthttp server (default 128)\n  -h\tShow usage\n  -l int\n    \tLog level. Examples: 0 (debug), 1 (info), 2 (warn), 3 (error). (default 1)\n  -n string\n    \tDNS nameserves, E.g. \"8.8.8.8\" or \"1.1.1.1,8.8.8.8\". Default is empty (OS default)\n  -t duration\n    \tConnection timeout. Examples: 1m or 10s (default 1m0s)\n  -v\tShow version\n  -x string\n    \tSet up a proxy chain. E.g. \"localhost:12345\"\n```\n\n#### 💡 Basic Example\n\n```fish\n./fpgo -a \"0.0.0.0:13002\" -c 1000 -n \"8.8.8.8,1.1.1.1\" -t 30s\ncurl -x http://localhost:13002 http(s)://example.com\n```\n\n#### 💡 Proxy Chain Example\n\n```fish\n./fpgo -a \"0.0.0.0:13001\"  # Proxy 1\n./fpgo -a \"0.0.0.0:13002\" -x \"localhost:13001\" # Proxy 2\n./fpgo -a \"0.0.0.0:13003\" -x \"localhost:13002\" # Proxy 3\ncurl -x http://localhost:13003 http(s)://example.com\n```\n\n#### 💡 Websocket Example\n\n```fish\n./fpgo -a \"0.0.0.0:13002\"\nwscat --proxy http://localhost:13002 -c wss://websocket-echo.com\n```\n\n### 📌 Caveats\n\nThis proxy server was used as a cheap knock-off of NAT Gateways on low-end hardwares originally, and was tuned for maximum performance, flexibility and less dependencies in our environments. But we've seen more and more people use it in production, so it's our responsibility to make sure everyone knows the following:\n\n- This is not a reverse proxy. The difference is that a forward proxy protects clients while a reverse proxy protects servers.\n- Unlike other forward proxies like Squid, responses or files are not cached.\n- Unlike other forward proxies, fpgo doesn't support user:password authentication, so beware of hackers taking over and use it as a jump server.\n- HTTPS prevents a forward proxy recording network traffics, see [#1](https://github.com/app-fast/fpgo/issues/1) .\n- A socks5 proxy is probably faster than a http proxy. If fpgo falls short of expectations, take a look at socks5 implementations in go/rust/zig. Nevertheless, not all http clients support socks5 forward proxy.\n\n### ©️ Credits\n\n- Original net/http implementation - https://www.sobyte.net/post/2021-09/https-proxy-in-golang-in-less-than-100-lines-of-code/\n- Inspired by [goproxy](https://github.com/snail007/goproxy) - Closed-source (only very few lines of code are open-source) multi-purpose proxy. TBH this one seems to be unstable in heavy traffic that's why I made fpgo 💐💐\n- Inspired by [hcproxy](https://github.com/romkatv/hcproxy) - Linux-only lightweight proxy\n- Inspired by [dumbproxy](https://github.com/SenseUnit/dumbproxy) - This one is great for everything except it doesn't handle ws/wss properly\n\n### 🪪 Licence\n\nPublic domain\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapp-fast%2Ffpgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapp-fast%2Ffpgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapp-fast%2Ffpgo/lists"}