A thin Go framework to write an HTTP Filter extension on Envoy Proxy. It leverages the Envoy HTTP Golang Filter as its foundation.
-
Full Go experience for building Envoy HTTP Filter extension.
-
Porting
net/http
interface experience to extend Envoy Proxy behavior with HTTP Golang Filter. -
Logging with go-logr.
-
Stats support; Enabling users to generate their own custom metrics.
-
Panic-free support; If a panic does occur, it is ensured that it won't break the user experience, particularly the Envoy proxy processes, as it will be handled in a graceful manner by returning a configurable response, defaults to
500
.
Gonvoy | Envoy Proxy |
---|---|
v0.3 | v1.29 |
v0.4 | v1.30 |
latest | v1.31 |
go get github.com/ardikabs/gonvoy
- Go 1.23 or later. Follow Golang installation guideline.
-
Install Git.
-
Install Go 1.23.
-
Clone the project.
git clone -b plugin [email protected]:ardkabs/gonvoy.git
-
Create a meaningful branch
git checkout -b <your-meaningful-branch>
-
Test your changes.
make test
-
We highly recommend instead of only run test, please also do audit which include formatting, linting, vetting, and testing.
make audit
-
Add, commit, and push changes to repository
git add . git commit -s -m "<conventional commit style>" git push origin <your-meaningful-branch>
For writing commit message, please use conventionalcommits as a reference.
-
Create a Pull Request (PR). In your PR's description, please explain the goal of the PR and its changes.
make test
To try this framework in action, heads to example directory.