As shown in the benchmarks (from a third-party source), Muxie is much faster than its alternatives out there with amazing performance, fastest net/http router ever created so far. View the results and read further details here.
Muxie alternatives and similar packages
Based on the "Web Frameworks" category.
Alternatively, view Muxie alternatives based on common mentions on social networks and blogs.
Gin10.0 9.2 Muxie VS GinGin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.
go-kit9.9 5.2 Muxie VS go-kitA standard library for microservices.
go-kratos9.9 9.5 Muxie VS go-kratosYour ultimate Go microservices framework for the cloud-native era.
Gorilla WebSocket9.9 5.3 Muxie VS Gorilla WebSocketA fast, well-tested and widely used WebSocket implementation for Go.
Iris9.9 8.0 Muxie VS IrisThe fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :rocket:
Echo9.9 9.0 Muxie VS EchoHigh performance, minimalist Go web framework
Fiber9.9 9.6 Muxie VS Fiber⚡️ Express inspired web framework written in Go
mux9.8 2.6 Muxie VS muxA powerful HTTP router and URL matcher for building Go web servers with 🦍
httprouter9.8 2.1 Muxie VS httprouterA high performance HTTP request router that scales well
chi9.7 7.8 Muxie VS chilightweight, idiomatic and composable router for building Go HTTP services
Revel9.7 0.0 Muxie VS RevelA high productivity, full-stack web framework for the Go language.
gqlgen9.6 9.2 Muxie VS gqlgengo generate based graphql server library
GoFrame9.6 9.2 Muxie VS GoFrameGoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.
GoSwagger9.6 7.2 Muxie VS GoSwaggerSwagger 2.0 implementation for go
Buffalo9.5 7.7 Muxie VS BuffaloRapid Web Development w/ Go
negroni9.4 4.9 Muxie VS negroniIdiomatic HTTP Middleware for Golang
go-socket.io9.3 0.0 Muxie VS go-socket.iosocket.io library for golang, a realtime application framework.
goa9.2 7.9 Muxie VS goaDesign-based APIs and microservices in Go
web.go9.1 0.0 Muxie VS web.goThe easiest way to create web applications with Go
go-json-rest8.9 0.0 Muxie VS go-json-restA quick and easy way to setup a RESTful JSON API
Gizmo8.9 0.0 Muxie VS GizmoA Microservice Toolkit from The New York Times
Macaron8.8 6.7 Muxie VS MacaronPackage macaron is a high productive and modular web framework in Go.
Hertz8.8 9.0 Muxie VS HertzGo HTTP framework with high-performance and strong-extensibility for building micro-services.
melody8.7 0.0 Muxie VS melody:notes: Minimalist websocket framework for Go
alice8.5 0.0 Muxie VS alicePainless middleware chaining for Go
Tollbooth8.4 3.9 Muxie VS TollboothSimple middleware to rate-limit HTTP requests.
CORS8.4 1.2 Muxie VS CORSGo net/http configurable handler to handle CORS requests
utron8.4 0.0 Muxie VS utronA lightweight MVC framework for Go(Golang)
Faygo8.2 3.8 Muxie VS FaygoFaygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes. Just define a struct handler, faygo will automatically bind/verify the request parameters and generate the online API doc.
Limiter8.1 0.0 Muxie VS LimiterDead simple rate limit middleware for Go.
render8.1 2.1 Muxie VS renderGo package for easily rendering JSON, XML, binary data, and HTML templates responses.
gocraft/web8.0 0.0 Muxie VS gocraft/webGo Router + Middleware. Your Contexts.
pat7.8 0.0 Muxie VS patSinatra style pattern muxer for Go’s net/http library, by the author of Sinatra.
Svix7.7 8.4 Muxie VS SvixThe enterprise-ready webhooks service 🦀
REST Layer7.7 0.0 Muxie VS REST LayerREST Layer, Go (golang) REST API framework
Bone7.7 0.0 Muxie VS BoneLightning Fast HTTP Multiplexer
Goyave7.6 7.1 Muxie VS Goyave🍐 Elegant Golang REST API Framework (v5 WIP)
tango7.6 0.0 Muxie VS tangoMicro & pluggable web framework for Go.
Atreugo7.5 7.6 Muxie VS AtreugoHigh performance and extensible micro web framework. Zero memory allocations in hot paths.
tigertonic7.5 0.0 Muxie VS tigertonicA Go framework for building JSON web services inspired by Dropwizard
Goji7.4 0.0 Muxie VS GojiGoji is a minimalistic and flexible HTTP request multiplexer for Go (golang)
fasthttprouter7.4 0.0 Muxie VS fasthttprouterA high performance fasthttp request router that scales well
go-fault7.3 4.4 Muxie VS go-faultFault injection library in Go using standard http middleware
Beego7.2 0.0 Muxie VS Beegobeego is an open-source, high-performance web framework for the Go programming language.
go-server-timing7.1 0.0 Muxie VS go-server-timingGo (golang) library for creating and consuming HTTP Server-Timing headers
Gearbox7.0 1.3 Muxie VS GearboxGearbox :gear: is a web framework written in Go with a focus on high performance
aah7.0 0.0 Muxie VS aahA secure, flexible, rapid Go web framework
golongpoll6.9 2.1 Muxie VS golongpollgolang long polling library. Makes web pub-sub easy via HTTP long-poll servers and clients :smiley: :coffee: :computer:
Go Soap6.9 0.0 Muxie VS Go Soap🦉SOAP package for Go
rye6.8 0.0 Muxie VS ryeA tiny http middleware for Golang with added handlers for common needs.
Access the most powerful time series database as a service
Do you think we are missing an alternative of Muxie or a related project?
:steam_locomotive::train::train::train::train::train: 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.
<!-- Release --> <!-- Godocs --> <!-- Build Status --> <!-- Report Card --> <!-- Examples --> <!-- Built for Iris -->
The little router that could. Built with ❤︎ by Gerasimos Maropoulos
[[Benchmark chart between muxie, httprouter, gin, gorilla mux, echo, vestigo and chi](_benchmarks/chart-17-oct-2018.png)](_benchmarks)
Last updated on October 17, 2018. Click [here](_benchmarks/README.md) to read more details.
- trie based: [performance](_benchmarks/README.md) 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
- [x] Closest Wildcard Resolution and Root wildcard (CWR)[*](_examples/3_root_wildcard_and_custom_404/main.go)
- [x] Parameterized Dynamic Path (named parameters with
:nameand wildcards with
*name, can play all together for the same path prefix|suffix)[*](_examples/2_parameterized/main.go)
- [x] Standard handlers chain (
Pre(handlers).For(mainHandler)for individual routes and
- [x] Register handlers by method(s) (
- [x] Register handlers by filters (
- [x] Handle subdomains with ease (
- [x] Request Processors (
Interested? Want to learn more about this library? Check out our tiny [examples](_examples) and the simple godocs page.
The only requirement is the Go Programming Language
$ go get -u github.com/kataras/muxie
<!-- ## Philosophy
I believe that providing the right tools for the right job represents my best self and I really enjoy writing small libraries and even frameworks that can be used and learnt by thousands like me. I do it for the past two and a half years and I couldn't be more happy and proud for myself.
Iris is a web backend framework for Go that is well-known in the Go community, some of you hated it due to a "battle" between "competitors" followed by a single article written almost three years ago but the majority of you really love it so much that you recommend it to your co-workers, use it inside your companies, startups or your client's projects or even write your postgraduate dissertation based on your own experience with Iris. Both categories of fans gave me enough reasons to continue and overcome myself day by day.
It was about the first days of September(2018) that I decided to start working on the next Iris release(version 11) and all job interviews postponed indefinitely. If you have ever seen or hear about Iris, you already know that Iris is one of the fastest and easy-to-use frameworks, this is why it became so famous in so little time after all.
A lot improvements were pushed over a month+ working full-time on Iris. I have never seen a router or a framework supports so many patterns as the current Iris' internal router that is exposed by a beautiful API. However, I couldn't release it for the public yet, I felt that something was missing, I believed that I could do its router smarter and even faster(!) and that ate my guts. And then...in early October, after a lot of testing(and drinking) I found the missing part, it was that the routes' parameterized paths, wildcards and statics all-together for the same path prefix cannot play as fast as possible and good as they should, also I realised that the internal router's code was not the best ever written (it was written to be extremely fast and I didn't care about readability so much back then, when I finally made it to work faster than the rest I forgot to "prettify" it due to my excitement!)
node.go were written for the Iris web framework's version 11 as you can understand by now, I believe that programming should be fun and not stressful, especially for new Gophers. So here we are, introducing a new autonomous Go-based mux(router) that it is light, fast and easy to use for all Gophers, not just for Iris users/developers.
kataras/muxie repository contains the full source code of my trie implementation and the HTTP component(
muxie.NewMux()) which is fully compatible with the
net/http package. Users of this package are not limited on HTTP, they can use it to store and search simple key-value data into their programs (
- The trie implementation is easy to read, and if it is not for you please send me a message to explain to you personally
- The API is simple, just three main methods and the two of them are the well-known
HandleFunc, identically to the std package's
- Implements a way to store parameters without touching the
*http.Requestand change the standard handler definition by introducing a new type such as a Context or slow the whole HTTP serve process because of it, look the
GetParamfunction and the internal
paramsWriterstructure that it is created and used inside the
- Besides the HTTP main functionality that this package offers, users should be able to use it for other things as well, the API is exposed as much as you walk through to
- Supports named parameters and wildcards of course
- Supports static path segments(parts, nodes) and named parameters and wildcards for the same path prefix without losing a bit of performance, unlike others that by-design they can't even do it
For the hesitants: There is a public repository (previously private) that you can follow the whole process of coding and designing until the final result of
And... never forget to put some fun in your life ❤︎
Yours, Gerasimos Maropoulos (@MakisMaropoulos) -->
*Note that all licence references and agreements mentioned in the Muxie README section above are relevant to that project's source code only.