whatisgithub

What is goproxy?

eternal-flame-ad/goproxy — explained in plain English

Analysis updated 2026-07-19 · repo last pushed 2018-10-10

GoAudience · developerComplexity · 3/5DormantLicenseSetup · moderate

In one sentence

Goproxy is a Go library for building custom HTTP proxies that intercept and modify web traffic. Developers attach handlers to control requests and responses, including HTTPS traffic via man-in-the-middle inspection.

Mindmap

mindmap
  root((repo))
    What it does
      Custom HTTP proxy
      Intercept web traffic
      Modify requests
      HTTPS inspection
    How it works
      Attach handlers
      Per-request code
      Return custom responses
      Generate certificates
    Use cases
      Block websites
      Collect traffic stats
      Central proxy server
    Audience
      Go developers
      Network engineers
      Ops teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Block access to specific websites during business hours by intercepting requests and returning a custom message.

USE CASE 2

Collect statistics on page load times by routing all user browsers through a central proxy server.

USE CASE 3

Inspect and modify encrypted HTTPS traffic using man-in-the-middle certificate generation.

What is it built with?

GoHTTPHTTPS

How does it compare?

eternal-flame-ad/goproxy42wim/fabio42wim/go-xmpp
LanguageGoGoGo
Last pushed2018-10-102018-02-042020-01-24
MaintenanceDormantDormantDormant
Setup difficultymoderatemoderatemoderate
Complexity3/53/53/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires understanding of HTTP proxies and certificate generation for HTTPS interception.

Use freely for any purpose including commercial use, as long as you keep the copyright notice.

So what is it?

Goproxy is a library for the Go programming language that lets you build a custom HTTP proxy. A proxy sits between a user's browser and the websites they visit, intercepting and potentially modifying web traffic. Instead of using a pre-built proxy tool with fixed features, this library lets a developer write code to control exactly what the proxy does with each request or response. At a high level, the developer creates a proxy server, then attaches small pieces of code called "handlers" to it. These handlers run every time a request passes through. For example, a handler could add a custom label to every outgoing request, or block access to specific websites during business hours. The README shows how you could reject connections to reddit between 8am and 5pm, returning a message like "Don't waste your time!" instead of the actual webpage. The proxy can also intercept secure HTTPS traffic using a technique the README calls "Man in the Middle," which lets it inspect and modify even encrypted connections. Someone would use this when they need more control than a tool like Fiddler offers. Fiddler is a desktop application meant for inspecting traffic on one machine, while goproxy is designed to run as a server handling traffic from multiple users at once. A practical use case the README mentions: gathering statistics on page load times for a website over a week. You could point all your users' browsers to a central machine running your custom proxy, and it would quietly collect data as they browse. The project considers itself beta-quality but reports positive feedback from people running it in production. It supports transparent proxying and can automatically generate the certificates needed to inspect HTTPS traffic. The author chose a Go-compatible BSD license but notes a willingness to change it if that license blocks someone from using the software.

Copy-paste prompts

Prompt 1
Write a Go program using the goproxy library that creates an HTTP proxy server blocking access to reddit.com between 8am and 5pm, returning a custom message instead.
Prompt 2
Using goproxy in Go, build a proxy that logs the response time of every request to a file for traffic analysis.
Prompt 3
Create a Go proxy with goproxy that intercepts HTTPS traffic using a man-in-the-middle setup and prints the URL of every outgoing request.
Prompt 4
Set up a goproxy server in Go that adds a custom header to every outgoing HTTP request before forwarding it.

Frequently asked questions

What is goproxy?

Goproxy is a Go library for building custom HTTP proxies that intercept and modify web traffic. Developers attach handlers to control requests and responses, including HTTPS traffic via man-in-the-middle inspection.

What language is goproxy written in?

Mainly Go. The stack also includes Go, HTTP, HTTPS.

Is goproxy actively maintained?

Dormant — no commits in 2+ years (last push 2018-10-10).

What license does goproxy use?

Use freely for any purpose including commercial use, as long as you keep the copyright notice.

How hard is goproxy to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is goproxy for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.