Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. go-http-routing-benchmark

go-http-routing-benchmark

BSD-3-ClauseGo

A benchmark suite comparing the performance of Go HTTP request routers and web frameworks using real-world API routing structures.

GitHubGitHub
1.7k stars241 forks0 contributors

What is go-http-routing-benchmark?

go-http-routing-benchmark is a comprehensive benchmark suite that evaluates the performance of various Go HTTP request routers and web frameworks. It implements the routing structures of real-world APIs like GitHub, Google+, and Parse to provide realistic comparisons, helping developers choose routers based on performance metrics such as speed and memory efficiency.

Target Audience

Go developers and architects who need to select an HTTP router or web framework for performance-critical applications, such as high-traffic APIs or services where low latency and efficient resource usage are priorities.

Value Proposition

Developers choose this benchmark because it offers objective, reproducible performance comparisons using real-world API structures, covering over 16 popular routers. Its transparent methodology and focus on both micro and macro benchmarks help identify routers that minimize overhead and scale well, unlike generic or synthetic tests.

Overview

Go HTTP request router and web framework benchmark

Use Cases

Best For

  • Comparing the routing speed and memory efficiency of Go HTTP routers like HttpRouter, Gorilla Mux, and Martini under realistic conditions.
  • Evaluating how different routers handle parameter-heavy routes, such as APIs with multiple dynamic segments, to assess scalability.
  • Benchmarking static route performance to find routers that minimize allocations and latency for simple URL structures.
  • Testing memory consumption across routers when loading large routing tables, such as those mimicking the GitHub API with 203 routes.
  • Identifying routers with low overhead for frameworks versus slim routing packages, helping choose between feature-rich and optimized solutions.
  • Reproducing performance tests locally to validate router choices for specific application needs, using the suite's detailed benchmark commands.

Not Ideal For

  • Teams needing current performance data for Go 1.18+ or newer routers, as the benchmarks use Go 1.3 and may be outdated
  • Developers seeking a production-ready router or framework to implement directly, since this is solely a benchmarking tool
  • Projects requiring beginner-friendly guidance on router selection without deep technical analysis of benchmark metrics
  • Environments with limited time for setup, due to the complex installation of 16+ router dependencies

Pros & Cons

Pros

Real-World API Routing

Implements routing structures from GitHub, Google+, and Parse APIs, providing realistic performance comparisons rather than synthetic tests.

Comprehensive Router Coverage

Tests 16+ popular Go routers and frameworks, including HttpRouter, Gorilla Mux, and Martini, offering a broad view of the ecosystem.

Detailed Performance Metrics

Measures routing speed, memory consumption, and allocation counts across micro and macro benchmarks, helping identify efficient routers.

Transparent Methodology

Provides clear results and methodology in the README, ensuring reproducible benchmarks and honest conclusions about trade-offs.

Cons

Outdated Benchmark Data

Runs on Go 1.3, an old version; performance characteristics may have changed in newer Go releases, limiting current relevance.

Potential Author Bias

The author admits bias as the creator of HttpRouter, which dominates benchmarks, potentially skewing focus and conclusions.

Limited Ecosystem Updates

May not include newer routers or frameworks released after its creation, reducing its usefulness for modern comparisons.

Complex Dependency Setup

Requires installing all 16+ router dependencies, which can be time-consuming and prone to version conflicts or installation issues.

Frequently Asked Questions

Quick Stats

Stars1,658
Forks241
Contributors0
Open Issues10
Last commit2 years ago
CreatedSince 2013

Tags

#performance-testing#api-testing#golang#http-router#web-framework#go#microbenchmark#routing#benchmark

Built With

G
Go

Included in

Go169.1k
Auto-fetched 5 hours ago

Related Projects

go-web-framework-benchmarkgo-web-framework-benchmark

:zap: Go web framework benchmark

Stars2,135
Forks227
Last commit9 days ago
go_serialization_benchmarksgo_serialization_benchmarks

Benchmarks of Go serialization methods

Stars1,626
Forks161
Last commit1 year ago
skynetskynet

Skynet 1M threads microbenchmark

Stars1,062
Forks119
Last commit2 years ago
speedtest-resizespeedtest-resize

Compare various Image resize algorithms for the Go language

Stars244
Forks18
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub