From 245d9a5e6f89b075df9bdb5b413e66793515d772 Mon Sep 17 00:00:00 2001 From: "Gerasimos (Makis) Maropoulos" Date: Thu, 16 Feb 2017 20:42:04 +0200 Subject: [PATCH] README: executable's overall file size between iris and a simple router Former-commit-id: 19db08e5a0a37aa4ef3b92085939c5aba6eb22fa --- README.md | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 882867f5..00e728ec 100644 --- a/README.md +++ b/README.md @@ -45,26 +45,49 @@ Not just another Go Web Framework

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