README: executable's overall file size between iris and a simple router

Former-commit-id: 19db08e5a0a37aa4ef3b92085939c5aba6eb22fa
This commit is contained in:
Gerasimos (Makis) Maropoulos 2017-02-16 20:42:04 +02:00
parent 155d3f2d87
commit 245d9a5e6f

View File

@ -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?