High performance and extensible micro web framework with zero memory allocations in hot paths.
It's built on top of fasthttp.
- WITH Go modules:
go get github.com/savsgio/atreugo/v10
- WITHOUT Go modules:
go get github.com/savsgio/atreugo
- 1.9.x
- 1.10.x
- 1.11.x
- 1.12.x
- 1.13.x
See: docs
-
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
Go to examples directory to see how to use Atreugo.
*atreugo.RequestCtx
is equal to *fasthttp.RequestCtx
, but with extra functionalities, 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 test result for 100, 1000, 5000 clients is:
* Smaller is better
Feel free to contribute it or fork me... 😉