Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoWrite

A Golang-based HTTP Proxy Server — built with intent, not vibes.

Go License Platform


What is GoWrite?

GoWrite is a lightweight, high-performance HTTP Proxy Server written in Go. While the software world drowns in AI-generated boilerplate and drag-and-drop abstractions, GoWrite is a deliberate act of engineering — built from first principles, with full control over every byte that passes through it.

This project exists because real engineers still write real software.


Features

  • 🔁 HTTP Request Forwarding — Intercepts and forwards client HTTP requests to target servers
  • 🔒 HTTPS Tunneling — Full support for the CONNECT method for encrypted traffic
  • 📋 Request/Response Logging — Visibility into all traffic flowing through the proxy
  • ⚙️ Configurable — Tune port, timeouts, and other server settings via config

Project Structure

gowrite/
├── cmd/
│   └── proxy/
│       └── main.go          # App entry point
│
├── internal/
│   ├── proxy/
│   │   ├── handler.go       # Handles incoming client requests
│
├── cert/                    # TLS certificates
├── go.mod
└── README.md

Getting Started

Prerequisites

  • Go 1.21+
  • Git

Clone & Run

git clone https://github.com/incodi404/gowrite.git
cd gowrite
go mod tidy
go run ./cmd/proxy

Configure your HTTP client or browser to use localhost:<PORT> as the proxy.


Build

Build for Linux (from Windows PowerShell)

# Step 1 — Set environment
$env:CGO_ENABLED=0; $env:GOOS="linux"; $env:GOARCH="amd64"

# Step 2 — Build
go build -trimpath -ldflags="-s -w" -o proxy ./cmd/proxy

Build for current platform

go build -o gowrite ./cmd/proxy
./gowrite

How It Works

Client
  │
  ▼
┌──────────────────────────┐
│       GoWrite Proxy       │
│                           │
│  handler.go               │  ← Accepts & parses client request,  Proxies HTTP requests upstream, Tunnels HTTPS via CONNECT, Streams response back to client, Logs method, URL, status, latency
└──────────────────────────┘
  │
  ▼
Target Server

For plain HTTP, GoWrite parses the request, forwards it to the target, and pipes the response back.

For HTTPS, GoWrite handles the CONNECT method — establishing a raw TCP tunnel between client and server without inspecting encrypted payloads.


Philosophy

"The best way to understand a system is to build it."

In a world of vibe-coded frameworks and prompt-engineered repos, GoWrite is different. Understanding how a proxy works — how connections are tunneled, how headers are forwarded, how goroutines handle concurrent I/O — is worth infinitely more than scaffolding one with a prompt.

This is software written by someone who actually thought about it.


Author

Dipankar Chowdhury — Backend Engineer (Security Focused) | GitHub · LinkedIn

About

Goright is a Golang based HTTP Proxy Server. The vision behind this project is to create something that very few software engineers can think about in this vibe coding era.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages