No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Mikhail 17ffdb3b2d
All checks were successful
Release / changelog (push) Successful in 5s
Release / test (push) Successful in 53s
Release / ci (push) Successful in 0s
Release / release (push) Successful in 7s
Merge pull request 'release: 0.5.0' (#52) from release/v0.5.0 into main
2026-10-26 23:04:14 +00:00
.forgejo/workflows ci: drop permissions, which Forgejo ignores with a warning 2026-10-26 22:12:24 +01:00
cmd/multiproxy Glossary names in code; default proxy CA named multiproxy CA 2026-10-26 23:57:02 +01:00
docs Glossary names in code; default proxy CA named multiproxy CA 2026-10-26 23:57:02 +01:00
pkg Glossary names in code; default proxy CA named multiproxy CA 2026-10-26 23:57:02 +01:00
.gitignore Un-ignore .forgejo against a global dotfile ignore 2026-10-26 21:48:54 +01:00
AGENTS.md docs: GLOSSARY.md, and AGENTS.md pointing agents at README and the glossary 2026-10-26 23:34:17 +01:00
CHANGELOG.md release: 0.5.0 2026-10-27 00:03:00 +01:00
GLOSSARY.md docs: GLOSSARY.md, and AGENTS.md pointing agents at README and the glossary 2026-10-26 23:34:17 +01:00
go.mod Access accounting observed, not reported 2026-10-26 23:08:22 +01:00
go.sum OpenTelemetry traces, metrics and logs; trace IDs in logs 2026-10-26 22:26:26 +01:00
LICENSE Initial 2021-01-20 15:40:24 +03:00
README.md docs: GLOSSARY.md, and AGENTS.md pointing agents at README and the glossary 2026-10-26 23:34:17 +01:00

multiproxy

multiproxy is an HTTP proxy that decides, host by host, whether to tunnel an HTTPS connection or to intercept it. Plain-HTTP, CONNECT and SOCKS5 clients all follow the same host rules, and requests the proxy can see, plain or intercepted, can have their headers rewritten. It exports traces, metrics and logs through OpenTelemetry. Its Go packages compose into a proxy of your own.

Go Reference

Quick start

  1. Install multiproxy. It needs Go 1.26 or later:

    go install sarak.sh/mikluko/multiproxy/cmd/multiproxy@latest
    
  2. Start it. With no flags it listens on 127.0.0.1:8080 and tunnels every HTTPS connection:

    multiproxy
    
  3. Send a request through it:

    curl -x http://127.0.0.1:8080 https://example.com
    

Each request writes one JSON access record to the proxy's stdout.

Documentation

How-to guides:

Reference:

Explanation:

License

multiproxy is released under the MIT License.