🚂🚋🚋🚋🚋🚋
Fast trie implementation designed from scratch specifically for HTTP
A
small and light
router for creating sturdy backend Go applications. Production-level tested, muxie's capabilities live inside the well-tested Iris web framework.
The little router that could. Built with ❤︎ by
Gerasimos Maropoulos
Last updated on October 17, 2018. Click here to read more details.
- trie based: performance and useness are first class citizens, Muxie is based on the prefix tree data structure, designed from scratch and built for HTTP, and it is among the fastest outhere, if not the fastest one
- grouping: group common routes based on their path prefixes
- no external dependencies: weighing
30kb
, Muxie is a tiny little library without external dependencies - closest wildcard resolution and prefix-based custom 404: wildcards, named parameters and static paths can all live and play together nice and fast in the same path prefix or suffix(!)
- small api: with only 3 main methods for HTTP there's not much to learn
- compatibility: built to be 100% compatible with the
net/http
standard package
- Closest Wildcard Resolution and Root wildcard (CWR)*
- Parameterized Dynamic Path (named parameters with
:name
and wildcards with*name
, can play all together for the same path prefix|suffix)* - Standard handlers chain (
Pre(handlers).For(mainHandler)
for individual routes andMux#Use
for router)* - Register handlers by method(s) (
muxie.Methods()
)* - Register handlers by filters (
Mux#HandleRequest
andMux#AddRequestHandler
formuxie.Matcher
andmuxie.RequestHandler
) - Handle subdomains with ease (
muxie.Host
Matcher)* - Request Processors (
muxie.Bind
andmuxie.Dispatch
)*
Interested? Want to learn more about this library? Check out our tiny examples and the simple godocs page.
The only requirement is the Go Programming Language
$ go get -u github.com/kataras/muxie