modules

BareProxy Modules: Nine Add-Ons Around a Bare Core

BareProxy Core does six things: proxying, TLS, routing, backend health, config changes and request tracing. Everything else is a module, compiled in only when you want it. A Bare build carries the core alone. A Full build carries every module.

There are nine: Static, Compress, Cache, Limit, Auth, Split, Guard, Export and Fleet. Each plugs in at a fixed point in the request, before routing, as a rule’s action, around the backend call, on the response, on the record or on config changes.

The request pipeline of BareProxy Core, with each module attached at its plug-in point

The rules are strict. The core never depends on a module. A module can’t change how the core matches requests. Its config lines are checked before they go live, explain shows what it did, plan reports what a change to it affects, and every request it touches still leaves one record. Each module also has its own budget of 1,500 lines of Go.

The modules page lists what each one adds and where it plugs in.