mirror of
https://github.com/kataras/iris.git
synced 2025-02-02 15:30:36 +01:00
README: executable's overall file size between iris and a simple router
Former-commit-id: 19db08e5a0a37aa4ef3b92085939c5aba6eb22fa
This commit is contained in:
parent
155d3f2d87
commit
245d9a5e6f
43
README.md
43
README.md
|
@ -45,26 +45,49 @@ Not just another Go Web Framework
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
- Iris is fully vendored. That means it is independent of any API changes in the used libraries and will work seamlessly in the future!
|
Iris is fully vendored. That means it is independent of any API changes in the used libraries and will work seamlessly in the future!
|
||||||
|
|
||||||
|
Iris follows the latest tech trends around the world.
|
||||||
|
|
||||||
|
Iris' features are visible to other web frameworks after some time. That means that Iris is followed by other go web frameworks.
|
||||||
|
|
||||||
|
The executable file size is a critical part of Application Deployment process.
|
||||||
|
|
||||||
|
I made two very simple identical applications, the first written with a famous mini web framework named `gin`(=Just a Router, with logger, recover and pure Context support) and the second in `iris`
|
||||||
|
(=every feature that you will need at the first place is bundled when you install Iris. Including sessions, websockets, typescript support, a cloud-editor, the view engine with 5 different template parsers, two Routers to select from, an end-to-end framework to test your API, more than 60 handy helpers via Context, complete rest API implementation, and cors, basicauth, internalization i18n, logger and recover middleware).
|
||||||
|
|
||||||
|
I ran `go build` for both of them,
|
||||||
|
|
||||||
|
- the first had `9.029 KB` overall file size,
|
||||||
|
- the second had `8.505 KB` overall file size!
|
||||||
|
|
||||||
|
Keep note that the same app written in pure `net/http` had produced an executable file with `5.380 KB` size.
|
||||||
|
|
||||||
|
Note that these applications doesn't uses any third-party library, they are simple applications, if we used other features like sessions and websockets then the size of `gin` and `net/http`
|
||||||
|
could be the double, while in the same time `iris`' overall file size will remain almost the same.
|
||||||
|
|
||||||
|
|
||||||
- Iris follows the latest tech trends around the world.
|
Result: Iris' executable file size is even smaller than simple router libraries!
|
||||||
|
|
||||||
- Iris' features are visible to other web frameworks after some time. That means that Iris is followed by other go web frameworks.
|
> Q: How is that possible?
|
||||||
|
|
||||||
- Iris is a high-performance tool, but it doesn't stops there. Performance depends on your application too, Iris helps you to make the right choices on every step.
|
> A: The Iris' vendor was done manually without any third-party tool. That means that I had the chance to remove any unnecessary code that Iris never uses internally.
|
||||||
|
|
||||||
- Familiar and easy API.
|
|
||||||
|
|
||||||
- Examples and Documentation for the most use cases and if you don't find something, just do an online search of the net/http way and adapt this way to Iris, Iris is not black-magic, I didn't invent the world.
|
|
||||||
|
|
||||||
- Iris is a low-level web framework, you know what you code on each single line.
|
Iris is a high-performance tool, but it doesn't stops there. Performance depends on your application too, Iris helps you to make the right choices on every step.
|
||||||
|
|
||||||
- You'll never miss a thing from `net/http`, but if you do on some point, no problem because Iris is fully compatible with stdlib, you still have access to `http.ResponseWriter` and `http.Request`, you can adapt any third-party middleware of form `func(http.ResponseWriter, *http.Request, next http.HandlerFunc)` as well.
|
Familiar and easy API.
|
||||||
|
|
||||||
- Iris is a community-driven project, you suggest and I code.
|
Examples and Documentation for the most use cases and if you don't find something, just do an online search of the net/http way and adapt this way to Iris, Iris is not black-magic, I didn't invent the world.
|
||||||
|
|
||||||
- Unlike others, this repository is very active. When you post an issue, you get an answer in the next couple of minutes, hours at the worst. If you find a bug, I am obliged to fix it on the same day.
|
Iris is a low-level web framework, you know what you code on each single line.
|
||||||
|
|
||||||
|
You'll never miss a thing from `net/http`, but if you do on some point, no problem because Iris is fully compatible with stdlib, you still have access to `http.ResponseWriter` and `http.Request`, you can adapt any third-party middleware of form `func(http.ResponseWriter, *http.Request, next http.HandlerFunc)` as well.
|
||||||
|
|
||||||
|
Iris is a community-driven project, you suggest and I code.
|
||||||
|
|
||||||
|
Unlike others, this repository is very active. When you post an issue, you get an answer in the next couple of minutes, hours at the worst. If you find a bug, I am obliged to fix it on the same day.
|
||||||
|
|
||||||
> Q: Why this framework is better than alternatives, does the author is, simply, better than other developers?
|
> Q: Why this framework is better than alternatives, does the author is, simply, better than other developers?
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user