Awesome
Atreugo
High performance and extensible micro web framework with zero memory allocations in hot paths.
It's built on top of fasthttp.
Install
go get github.com/savsgio/atreugo/v11
Supported Go versions:
- 1.22.x
- 1.21.x
- 1.20.x
Documentation
See: docs
Organization
Find useful libraries like middlewares, websocket, etc.
- See: Organization
Feature Overview
-
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.
-
Middlewares support:
- Before view execution.
- After view execution.
-
Easy routing:
- Path parameters (mandatories and optionals).
- Views with timeout.
- Group paths and middlewares.
- Static files.
- Serve one file like pdf, etc.
- Middlewares for specific views.
- fasthttp handlers support.
- net/http handlers support.
-
Common responses (also you could use your own responses):
- JSON
- HTTP
- Text
- Raw
- File
- Redirect
Examples:
Go to examples to see how to use Atreugo.
Note:
*atreugo.RequestCtx
is equal to *fasthttp.RequestCtx
, but with extra functionalities, so you can use
the same functions of *fasthttp.RequestCtx
. Don't worry :smile:
Benchmark
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 test result for 100, 1000, 5000 clients is:
* Smaller is better
Contributing
Feel free to contribute or fork me... :wink: