Skip to content

A thin Go framework to write an HTTP Filter extension on Envoy Proxy

License

Notifications You must be signed in to change notification settings

ardikabs/gonvoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gonvoy

Go Reference Go Report Card Test Codecov

A thin Go framework to write an HTTP Filter extension on Envoy Proxy. It leverages the Envoy HTTP Golang Filter as its foundation.

Features

  • 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.

Compatibility Matrix

Gonvoy Envoy Proxy
v0.3 v1.29
v0.4 v1.30
latest v1.31

Installation

go get github.com/ardikabs/gonvoy

Development Guide

Prerequisites

Setup

  • 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.

Testing

Unit Test

make test

Try It

To try this framework in action, heads to example directory.

License

MIT