savsgio / Atreugo
Projects that are alternatives of or similar to Atreugo
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.15.x
- 1.14.x
- 1.13.x
- 1.12.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 😄
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... 😉