A lightweight and lightning fast HTTP multiplexer for Go with URL parameters, regex support, and sub-router compatibility.
Bone is a lightweight HTTP multiplexer (router) for Go that provides fast and flexible request routing with support for URL parameters, regex patterns, and wildcard routes. It solves the need for high-performance routing in Go web applications while maintaining compatibility with standard Go HTTP interfaces.
Go developers building web applications, APIs, or services who need a fast, lightweight router with advanced routing capabilities beyond the standard net/http multiplexer.
Developers choose Bone for its exceptional performance (benchmarked faster than many popular routers), clean API that respects Go conventions, and flexible features like parameter validation and sub-router compatibility without unnecessary bloat.
Lightning Fast HTTP Multiplexer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks in the README show Bone outperforming routers like gorilla/mux and httpRouter, with 10 million operations at 118 ns/op, making it ideal for high-throughput applications.
Bone fully respects Go's standard http.Handler and http.HandlerFunc interfaces, ensuring seamless integration with existing Go web code and libraries without breaking conventions.
Supports URL parameters, regex validation, wildcard routes, and custom validators, as shown in the example code with routes like "/index/#id^[0-9]$" for precise matching.
Designed to be lightweight with no unnecessary bloat, focusing on essential routing functionality while maintaining high speed, as emphasized in the project philosophy.
Lacks integrated middleware, session management, or security features; middleware requires separate libraries like Claw, adding complexity for full-featured applications.
The README is concise and relies on external blog posts for guidance, which may not cover advanced use cases or troubleshooting, potentially slowing down development.
Key functionalities like error handling and middleware are split into separate projects (Trash and Claw), complicating dependency management and integration compared to all-in-one routers.