TCP relay/proxy server in Golang
The goal is to build a TCP Relay Server which can:
It’s currently assumed that the App will take care of handling Application
Layer Protocols such as HTTP/HTTPS/SSH from a byte stream.
Errors in critical places lead to program exit.
Run the commands in example.sh
different terminals for better clarity.
Current implementation gives a *bufio.ReadWriter for every Client connected
to the Relay server socket created for a given registered app.
Edit the func customFunction(rw *bufio.ReadWriter){}
in sampleappecho/echo.go
to
get the hang of what’s passed to the App and how to customize responses.
go test
Also,
go build -race
golangci-lint in GitHub
golangci-lint run
Add tests
Remove excessive logging
Integrate with CI/CD
Further nail down requirements
Based on requirements, prioritize new performance improvements / new features / usability etc.
Build an example app handling HTTP requests