elazarl/goproxy

An HTTP proxy library for Go

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 49 minutes ago
Added to GitGenius on September 9th, 2026
Created on March 22nd, 2012
Open Issues & Pull Requests: 83 (+0)
GitHub issues: Enabled
Number of forks: 1,221
Total Stargazers: 6,757 (+0)
Total Subscribers: 149 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.8 days
Mean response time: 420.4 days
90th percentile: 1778.5 days
Tracked items: 229

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 84% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 8% of issues opened in the past year have been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 38
New in 7 days: 0
Closed in 7 days: 1
Avg open age: 1,248 days
Stale 30+ days: 36
Stale 90+ days: 33

Recent activity

Opened in 7 days: 0
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • good first issue (11)
  • invalid (1)
  • unrelated (1)

Most active issues this week

Detailed Description

GoProxy is an HTTP proxy library for Go that enables developers to build customized proxy servers with configurable behavior.

The library solves the problem of needing a programmable, production-capable HTTP proxy by providing a net/http handler that can intercept and manipulate both requests and responses. It supports multiple proxy modes including regular HTTP proxying, HTTPS tunneling via CONNECT, HTTPS man-in-the-middle interception with certificate generation, and raw connection hijacking. Developers can apply actions conditionally based on specific hosts using equality checks or regex matching, use custom HTTP transports for backend requests, cache MITM certificates to reduce CPU overhead, and redirect relative-path traffic to custom handlers. The proxy integrates seamlessly with standard Go HTTP middleware patterns for logging, compression, and error recovery.

GoProxy suits projects that need fine-grained control over HTTP traffic flowing through a proxy, such as debugging tools, traffic manipulation for testing, or request filtering systems. It is designed to handle reasonable production traffic volumes while remaining customizable and programmable. The library's approach of being a simple net/http handler makes it suitable for teams already working within the Go ecosystem and comfortable with middleware-based architectures.

The project maintains active development with regular workflow checks and documentation updates. Pull requests are welcomed and the maintainers actively seek sponsorship to sustain ongoing work on bug fixes and new features. The project has established communication channels through a community group and maintains transparency about its maintenance status and resource needs.