High performance and extensible micro web framework with zero memory allocations in hot paths.
It's build on top of fasthttp.
- WITH Go modules:
go get github.com/savsgio/atreugo/v9
- WITHOUT Go modules:
go get github.com/savsgio/atreugo
Supported Go versions:
Optimized for speed. Easily handles more than 100K qps and more than 1M concurrent keep-alive connections on modern hardware.
Optimized for low memory usage.
Easy 'Connection: Upgrade' support via RequestCtx.Hijack.
Server provides anti-DoS limits.
- Before view execution.
- After view execution.
- Path parameters (mandatories and optionals).
- Views with timeout.
- Group paths and middlewares.
- Static files.
- Serve one file like pdf, etc.
- Filters (middlewares) to especific views.
- net/http handlers support.
- fasthttp handlers support
Common responses (also you could use your own responses):
Go to examples directory to see how to use Atreugo.
*atreugo.RequestCtx is equal than
*fasthttp.RequestCtx, but adding extra funtionality, so you can use
the same functions of
*fasthttp.RequestCtx. Don't worry
Best Performance: Atreugo is one of the fastest go web frameworks in the go-web-framework-benchmark.
- Basic Test: The first test case is to mock 0 ms, 10 ms, 100 ms, 500 ms processing time in handlers.
- Concurrency Test (allocations): In 30 ms processing time, the tets result for 100, 1000, 5000 clients is:
* Smaller is better
Useful third-party libraries
Feel free to contribute it or fork me...