
fasthttp
A Go HTTP library tuned for speed, aimed at high-volume servers and clients.
- Stars
- 23.5k
- Forks
- 1.9k
- Licence
- MIT
- Language
- Go
- Last update
- 4 days ago
- Type
- Library
What it is
fasthttp is an HTTP server and client package for the Go programming language, built to be faster than Go's standard net/http package. It reduces memory allocations in its hot paths, which the README says gives higher throughput. The README itself warns that it is designed for specific high-performance cases and that net/http is easier to use and suits most projects.
- Building a high-throughput HTTP server in Go
- Making a large volume of outbound HTTP requests from a Go client
- Serving high connection counts on a single physical server, per the README's production example
Great for
- Go developers whose server must handle thousands of small-to-medium requests per second
- Teams that have measured net/http and found HTTP handling to be a real bottleneck
- Projects with very high numbers of keep-alive connections, as in the VertaMedia example in the README
- Developers comfortable adapting code to a non-standard API
Not ideal for
- Most typical Go web services, because the README says net/http is much better for most cases and easier to use
- Projects that need broad compatibility with net/http handlers and middleware, since the README notes net/http can handle more cases
- Beginners learning Go web development, since the API differs from the standard library
How to get it
- 1
Install with a package manager
You'll need: Go
Clone the repository
git clone https://github.com/valyala/fasthttp - 2
Run it
- Add the package to a Go module using the import path github.com/valyala/fasthttp
- Read the examples in the repository's examples folder or the pkg.go.dev documentation
- Write a small server or client that uses fasthttp and benchmark it against your current net/http code
- 3
Get the most out of it
- Read the README's 'Switching from net/http to fasthttp' section before migrating code
- Follow the 'Fasthttp best practices' section in the README to avoid common pitfalls
- Use the included benchmarks to measure performance on your own hardware and workload
- Check the pkg.go.dev documentation examples for server and client patterns
Downloads
Strengths
- The README includes benchmark tables comparing it with net/http, with zero allocations reported for its server GET benchmarks
- Actively maintained, with a v1.77.0 release and a recent push date
- Released under the permissive MIT license
Trade-offs
- The README explicitly says it is not for most use cases and net/http is usually the better choice
- Benchmark figures come from a single Intel Xeon test setup and may not match your workload
- The latest release has no prebuilt binaries, since it is a library rather than an application
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| fasthttp (this) | 23.5k | Library | advanced | 4 days ago | Go developers whose server must handle thousands of small-to-medium requests per second |
| fiber | 40.2k | Library | intermediate | 5 days ago | Go developers building REST APIs or web backends |
| gin | 89.5k | Library | intermediate | 27 days ago | Go developers building REST APIs |
| echo | 32.8k | Library | intermediate | 7 days ago | Go developers building REST APIs or backend services |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.