mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 02:31:04 +01:00
add history note for the next published version
Former-commit-id: 07968f30448447994ea28c60d9f07916fdf74a4c
This commit is contained in:
parent
da224e363a
commit
03bcadadec
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,8 +1,5 @@
|
|||
.settings
|
||||
.project
|
||||
.vscode
|
||||
2M_donation_timeline.cpd
|
||||
performance_tips.txt
|
||||
notes.txt
|
||||
organisations_using_iris.txt
|
||||
independent_developers_using_iris.txt
|
||||
specs
|
||||
.github
|
||||
|
|
91
HISTORY.md
91
HISTORY.md
|
@ -6,88 +6,25 @@
|
|||
|
||||
http://support.iris-go.com
|
||||
|
||||
_Update: 18 May 2017_
|
||||
## Sa, 03 June 2017
|
||||
|
||||
Hello Community, @kataras sent me a report of some of the improvements he was coding for the last two months.
|
||||
Here is a small preview of that report:
|
||||
|
||||
Website
|
||||
Thanks to [Santosh Anand](https://github.com/santoshanand) the http://iris-go.com has been upgraded and it's awesome!
|
||||
New version 7 released.
|
||||
|
||||
[Santosh](https://github.com/santoshanand) is a freelancer, he has a good knowledge of nodejs and express js, Android, iOS, React Native, Vue.js etc, if you need a developer to find or create a solution for your problem or task, please contact with him.
|
||||
Navigate to the [master](https://github.com/kataras/iris/tree/master) branch for more.
|
||||
|
||||
As Gerasimos explained to me, he will provide you more information about [Santosh Anand](https://github.com/santoshanand)'s profile later on.
|
||||
This version, v6, will work "forever" by-design, it uses the vendor directory feature, so you get truly reproducible builds, as this method guards against upstream renames and delete.
|
||||
|
||||
People
|
||||
- Some specifications will be published to help people with interest to understand how Iris works under the hood
|
||||
- Every level of the framework's API has been simplified, code is a lot easier to read
|
||||
- Guidelines for people who wants to contribute to the Iris project will be, finally, published. PRs can be approved after 2 or more code reviews
|
||||
Developers are not forced to upgrade to the version 7 if they don't really need it.
|
||||
|
||||
General
|
||||
- Desktop notifications for common errors, online solution is visible when user click on the "Balloon" (Can be turned off)
|
||||
- Tray icon with useful links, including "docs and examples", "get free support", "chat with us" (Can be turned off)
|
||||
- Several enhancements for typescript transpiler, view engine, websocket server and sessions manager
|
||||
## v5 -> v6
|
||||
|
||||
Routing
|
||||
- New custom interpreter including parser and evaluator for routes' path, i.e `/users/{userid:int min(1)}`, `/users/{username:string regexp(...)`, `/assets/{file:path}` with custom "macros" and more (Optional, the old syntax is totally valid and safe)
|
||||
- Remove of gorillamux, it's useless. The new way is faster than anything else we have seen in Go so far.
|
||||
- Subdomains matching improvements
|
||||
- Simplify API, i.e Handlers are now standalone functions, no need for `HandleFunc,UseFunc,DoneFunc,UseGlobalFunc`, only `Handle,Use,Done,UseGlobal`
|
||||
- General speed improvements
|
||||
- Cache with expiration, rules can be setted per route or globally
|
||||
Users already notified for some breaking-changes, this section will help you
|
||||
to adapt the new changes to your application, it contains an overview of the new features too.
|
||||
|
||||
Server
|
||||
- Performance boost up to 8-12% on 5kkk+ connections
|
||||
- Schedule custom tasks(with cancelation) when server is running
|
||||
- Future Go1.9's [ServeTLS](https://go-review.googlesource.com/c/38114/2/src/net/http/server.go) has already adopted here
|
||||
- New `Done` and `Err` channels to catch shutdown or any errors
|
||||
- Able to set custom underline *http.Server(s) under the Iris' Server Supervisor
|
||||
- Proxy removed, net/http has its own and it's good
|
||||
- New tcp listening methods are easier to use, simplier to read
|
||||
|
||||
Context
|
||||
- Easy way to change Iris' default `Context` with a custom one
|
||||
- Custom HTTP errors are fired when request is done , automatically
|
||||
- `ResponseWriter().SetBeforeFlush(...)` works for Flush and HTTP/2 Push, respectfully
|
||||
- `JSON, JSONP, XML, Markdown, HTML` faster
|
||||
- Able to set `ViewData` and `ViewLayout` via middleware when executing a template
|
||||
- Several improvements under the `Request transactions`
|
||||
- And 16+ more additions, new features and API simplifications, will be documented when @kataras decide to publish the new release at github.
|
||||
|
||||
|
||||
## 6.1.4 -> 6.2.0 (√Νεxτ)
|
||||
|
||||
_Update: 12 April 2017_
|
||||
|
||||
```
|
||||
Many of you, including myself, thought that Gerasimos is not accepting any PRs, this is wrong.
|
||||
|
||||
I did a long PR, which actually fixes some bugs and integrations with the godep tool, on a project that he's contributing too.
|
||||
|
||||
The next day I'm logged into my personal twitter and I saw a message written by him.
|
||||
|
||||
He, @kataras, wrote me that he was really impressed by the time I spent to actually fix a bug on an Iris sub-project.
|
||||
He told me that no one did that before and he asked me if I have more time to help these days on the Iris project too.
|
||||
|
||||
And, Here I am! Introducing myself to the most clever community!
|
||||
```
|
||||
|
||||
```
|
||||
Hello,
|
||||
my name is Esemplastic.
|
||||
|
||||
Iris' author, @kataras, is very busy these days on designing the new Iris' release which will contain even more prototypes and it will break any rules you knew so far.
|
||||
I took a sneak preview of it, don't tell to him!
|
||||
|
||||
|
||||
I'm the temporary maintainer of this open-source project and your new friend.
|
||||
```
|
||||
|
||||
- **FIX**: Upgrade the [httpcache](https://github.com/geekypanda/httpcache) vendor. As requested [here](http://support.iris-go.com/d/44-upgrade-httpcache-module).
|
||||
|
||||
|
||||
_Update: 28 March 2017_
|
||||
|
||||
- **View**: Provide an easier method on the community's question about "injecting" additional data outside of the route's main handler which calls the .Render, via middleware.
|
||||
- As discussed [above](http://support.iris-go.com/d/27-using-middleware-to-inject-properties-for-templates).
|
||||
- Click [here](https://github.com/kataras/iris/tree/v6/_examples/intermediate/view/context-view-data) for an example.
|
||||
|
@ -103,18 +40,6 @@ _Update: 12 March 2017_
|
|||
- Add a third parameter on `app.OnError(...)` for custom http errors with regexp validation, see [status_test.go](https://github.com/kataras/iris/blob/v6/status_test.go) for an example.
|
||||
- Add a `context.ParamIntWildcard(...)` to skip the first slash, useful for wildcarded paths' parameters.
|
||||
|
||||
|
||||
> Prepare for nice things, tomorrow is Iris' first birthday!
|
||||
|
||||
|
||||
_Update: 28 Feb 2017_
|
||||
|
||||
> Note: I want you to know that I spent more than 200 hours (16 days of ~10-15 hours per-day, do the math) for this release, two days to write these changes, please read the sections before think that you have an issue and post a new question, thanks!
|
||||
|
||||
|
||||
Users already notified for some breaking-changes, this section will help you
|
||||
to adapt the new changes to your application, it contains an overview of the new features too.
|
||||
|
||||
- Shutdown with `app.Shutdown(context.Context) error`, no need for any third-parties, with `EventPolicy.Interrupted` and Go's 1.8 Gracefully Shutdown feature you're ready to go!
|
||||
- HTTP/2 Go 1.8 `context.Push(target string, opts *http.PushOptions) error` is supported, example can be found [here](https://github.com/kataras/iris/blob/v6/adaptors/websocket/_examples/websocket_secure/main.go)
|
||||
|
||||
|
|
156
README.md
156
README.md
|
@ -1,44 +1,15 @@
|
|||
<p align="center">
|
||||
<a href="http://support.iris-go.com">
|
||||
<img width="500" src="https://github.com/iris-contrib/website/raw/gh-pages/assets/simplicity_random_image_but_suitable_because_iris_has_the_same_slogan.gif"
|
||||
alt="Navigate to http://support.iris-go.com">
|
||||
</a>
|
||||
# Iris
|
||||
|
||||
<p>
|
||||
Iris is an <b>efficient</b> and well-designed, <b>cross-platform, web framework</b> with robust set of <b>features</b>.<br/>Build your own <b>high-performance</b> web applications and <b>APIs</b> powered by unlimited <b>potentials and portability</b>.<br/>
|
||||
<a href="https://travis-ci.org/kataras/iris"><img src="https://api.travis-ci.org/kataras/iris.svg?branch=v6&style=flat-square" alt="Build Status"></a>
|
||||
<a href="http://goreportcard.com/report/kataras/iris"><img src="https://img.shields.io/badge/report%20card%20-a%2B-F44336.svg?style=flat-square" alt="http://goreportcard.com/report/kataras/iris"></a>
|
||||
<a href="http://support.iris-go.com"><img src="https://img.shields.io/badge/support-page-ec2eb4.svg?style=flat-square" alt="Iris support forum"></a> <!-- <a href="https://github.com/kataras/iris/blob/v6/HISTORY.md"><img src="https://img.shields.io/badge/codename-√Νεxτ%20-blue.svg?style=flat-square" alt="CHANGELOG/HISTORY"></a> --><a href="https://github.com/kataras/iris/tree/v6/_examples#table-of-contents"><img src="https://img.shields.io/badge/examples-%20repository-3362c2.svg?style=flat-square" alt="Examples for new Gophers"></a>
|
||||
<a href="https://godoc.org/gopkg.in/kataras/iris.v6"><img src="https://img.shields.io/badge/docs-%20reference-5272B4.svg?style=flat-square" alt="Docs"></a>
|
||||
<a href="https://kataras.rocket.chat/channel/iris"><img src="https://img.shields.io/badge/community-%20chat-00BCD4.svg?style=flat-square" alt="Chat"></a>
|
||||
<a href="https://github.com/kataras/iris#buy-me-a-cup-of-coffee"><img src="https://img.shields.io/badge/support-%20open--source-F4A460.svg?logo=data:image%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiPjxwYXRoIGZpbGw9InJnYigyMjAsMjIwLDIyMCkiIGQ9Ik04ODYuNiwzMDUuM2MtNDUuNywyMDMuMS0xODcsMzEwLjMtNDA5LjYsMzEwLjNoLTc0LjFsLTUxLjUsMzI2LjloLTYybC0zLjIsMjEuMWMtMi4xLDE0LDguNiwyNi40LDIyLjYsMjYuNGgxNTguNWMxOC44LDAsMzQuNy0xMy42LDM3LjctMzIuMmwxLjUtOGwyOS45LTE4OS4zbDEuOS0xMC4zYzIuOS0xOC42LDE4LjktMzIuMiwzNy43LTMyLjJoMjMuNWMxNTMuNSwwLDI3My43LTYyLjQsMzA4LjktMjQyLjdDOTIxLjYsNDA2LjgsOTE2LjcsMzQ4LjYsODg2LjYsMzA1LjN6Ii8%2BPHBhdGggZmlsbD0icmdiKDIyMCwyMjAsMjIwKSIgZD0iTTc5MS45LDgzLjlDNzQ2LjUsMzIuMiw2NjQuNCwxMCw1NTkuNSwxMEgyNTVjLTIxLjQsMC0zOS44LDE1LjUtNDMuMSwzNi44TDg1LDg1MWMtMi41LDE1LjksOS44LDMwLjIsMjUuOCwzMC4ySDI5OWw0Ny4zLTI5OS42bC0xLjUsOS40YzMuMi0yMS4zLDIxLjQtMzYuOCw0Mi45LTM2LjhINDc3YzE3NS41LDAsMzEzLTcxLjIsMzUzLjItMjc3LjVjMS4yLTYuMSwyLjMtMTIuMSwzLjEtMTcuOEM4NDUuMSwxODIuOCw4MzMuMiwxMzAuOCw3OTEuOSw4My45TDc5MS45LDgzLjl6Ii8%2BPC9zdmc%2B" alt="Buy me a cup of coffee"></a>
|
||||
<br/>
|
||||
Iris is an <b>efficient</b> and well-designed, <b>cross-platform, web framework</b> with robust set of <b>features</b>.<br/>Build your own <b>high-performance</b> web applications and <b>APIs</b> powered by unlimited <b>potentials and portability</b>.
|
||||
|
||||
If you're coming from <a href="https://nodejs.org/en/">Node.js</a> world, this is the <a href="https://github.com/expressjs/express">expressjs</a> equivalent for the <a href="https://golang.org">Go Programming Language.</a>
|
||||
</p>
|
||||
|
||||
<details>
|
||||
<summary>News</summary>
|
||||
|
||||
Upcoming release - Calliope
|
||||
-----------
|
||||
|
||||
Hello people, I'm designing the new Iris version with the codename of "**Calliope**".
|
||||
|
||||
Based on the **Greek goddesses** of ancient mythology, **Calliope** was one of the Muses, the muse of epic poetry, daughter of Zeus and Mnemosyne and the wisest of the Muses.
|
||||
|
||||
The next, tactical, month release *should be published at the **1 May of 2017** *.
|
||||
|
||||
I am making my bests to catch up this deadline, so I'm very busy these days. Sorry for being late to answer to your questions!
|
||||
|
||||
**UPDATE: 6 May 2017**
|
||||
|
||||
The release could be published at the first may of 2017 but it was postponed.
|
||||
|
||||
The below tasks should be completed before publishing the new release:
|
||||
- The review, of the new release's specifications that I wrote, should be ready at the next couple of days.
|
||||
- The results from our beta testers may take a little more but it worths the waiting.
|
||||
</details>
|
||||
|
||||
What you say about Iris ✌
|
||||
-----------
|
||||
<p>
|
||||
|
@ -71,6 +42,9 @@ src="https://github.com/iris-contrib/website/raw/gh-pages/assets/gif_link_to_yt.
|
|||
<a href="https://www.youtube.com/watch?v=jGx0LkuUs4A">
|
||||
<img width ="300" src="https://github.com/iris-contrib/website/raw/gh-pages/assets/gif_link_to_yt2.gif" alt="What people say" />
|
||||
</a>
|
||||
<br/>
|
||||
|
||||
If you're coming from <a href="https://nodejs.org/en/">Node.js</a> world, this is the <a href="https://github.com/expressjs/express">expressjs</a> equivalent for the <a href="https://golang.org">Go Programming Language.</a><br/>
|
||||
|
||||
</p>
|
||||
|
||||
|
@ -227,9 +201,6 @@ The only requirement is the [Go Programming Language](https://golang.org/dl/), a
|
|||
$ go get gopkg.in/kataras/iris.v6
|
||||
```
|
||||
|
||||
For further installation support, navigate [here](http://support.iris-go.com/d/16-how-to-install-iris-web-framework).
|
||||
|
||||
|
||||
Overview
|
||||
-----------
|
||||
|
||||
|
@ -385,17 +356,6 @@ Support
|
|||
- :earth_americas: post [an article](https://dzone.com/articles/a-url-shortener-service-using-go-iris-and-bolt-ger) or [tweet](https://twitter.com/gelnior/status/769100480706379776) and share it with your neighbor
|
||||
|
||||
|
||||
<!--It's true that I am spending all my available time for Iris and its related projects, therefore I have no income value.
|
||||
|
||||
However, I am not asking from people to change the system. I know that the majority of us(devs) don't really care how authors of projects like Iris survive. I totally understand that.
|
||||
|
||||
If somebody out there can
|
||||
help developers like me to worry less about daily life's dilemmas it would be easier for them to make the particular project(s) even better.
|
||||
There are no limits to the Iris' potentials.
|
||||
|
||||
|
||||
I am a realistic person. If things won't change for my daily life I will be forced to give Iris' managment to somebody else(that community could trust).-->
|
||||
|
||||
Buy me a cup of coffee?
|
||||
------------
|
||||
|
||||
|
@ -413,29 +373,6 @@ Feel free to send **any** amount through paypal
|
|||
|
||||
Thanks for your gratitude and finance help ♡
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
Some of the benefits are listed here:
|
||||
|
||||
- Your github username, after your approval, is visible at the top of the README page.
|
||||
- Access to the 'donors' [private chat room](https://kataras.rocket.chat/group/donors) gives you real-time assistance by Iris' Author.
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
### Become An Iris Sponsor
|
||||
|
||||
Want to add your company's logo to our [website](http://iris-go.com)?
|
||||
|
||||
Please contact me via email: kataras2006@hotmail.com
|
||||
|
||||
Thank you!
|
||||
|
||||
-->
|
||||
|
||||
|
||||
Third Party Middleware
|
||||
------------
|
||||
|
||||
|
@ -466,87 +403,6 @@ Here is a small list of Iris compatible middleware, I'm sure you can find more:
|
|||
|
||||
Feel free to put up a [PR](https://github.com/iris-contrib/middleware) your middleware!
|
||||
|
||||
<!--
|
||||
|
||||
FAQ
|
||||
-----------
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
> Q: OK Iris is really fast, but my current website does not need that performance at the moment, are there other reasons to move into Iris?
|
||||
|
||||
|
||||
Iris is fully vendored. That means it is independent of any API changes in the used libraries and **will work seamlessly in the future**!
|
||||
|
||||
The size of the executable file is a critical part of the Application Deployment Process.
|
||||
|
||||
Two very simple identical applications, the first was written with `iris` and the second with a simple golang router.
|
||||
|
||||
- _iris_ had `8.505 KB` overall file size
|
||||
- _gin_ had `9.029 KB` overall file size
|
||||
- _net/http_ had produced an executable file with `5.380 KB` size.
|
||||
|
||||
|
||||
> Iris has built'n support for the most of the features that you will use to craft your perfect web application, while the golang router(gin & httprouter alone) doesn't. Imagine what would happened if the simple app we created would use `sessions`, `websockets`, `view engine`... I tested that too, `gin` and `net/http` had produced the x3 of their original size, **while `iris application`' overall executable filesize remained stable**!
|
||||
|
||||
|
||||
**Applications that are written using Iris produce smaller file size even if they use more features** than a simple router library!
|
||||
|
||||
|
||||
Iris always follows the latest trends and best practices. Iris is the **Secret To Staying One Step Ahead of Your Competition**.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
**Familiar** and easy **API**. Sinatra-like REST API.
|
||||
|
||||
Contains examples and documentation for all its features.
|
||||
|
||||
Iris is a `low-level access` web framework, you always know what you're doing.
|
||||
|
||||
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 other repositories, this one is **very active**. When you post an issue, you get an answer at the next couple of minutes(hours at the worst). If you find a bug, **I am obliged to fix** that on the same day.
|
||||
|
||||
|
||||
Click the below animation to see by your self what people, like you, say about Iris.
|
||||
|
||||
<a href="https://www.youtube.com/watch?v=jGx0LkuUs4A">
|
||||
<img src="https://github.com/iris-contrib/website/raw/gh-pages/assets/gif_link_to_yt2.gif" alt="What people say" />
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
> Q: Why no `serverless`?
|
||||
|
||||
New web developers are so enthusiastic about the idea of `serverless` and `AWS`. Most of the experienced developers we already know that we shouldn't use these things for our critical parts of our application.
|
||||
|
||||
|
||||
**`Serverless and AWS` Are Wonderful—Until They Go Wrong.** There was a flash-point (at 28 February of 2017) where the 'internet was offline' and most of the sites, including isitdownrightnow.com, were down or operated very slow! Why? Because of `serverless` and `AmazonS3`.
|
||||
Please think twice before moving your code into `serverless`, **instead, use web frameworks that are created for servers that you control**, i.e Iris.
|
||||
|
||||
Proof of concept:
|
||||
|
||||
- [Washington Post](https://www.washingtonpost.com/news/the-switch/wp/2017/02/28/why-a-whole-slew-of-websites-are-suddenly-down-or-working-slowly)
|
||||
- [CNN](http://money.cnn.com/2017/02/28/technology/amazon-web-services-outages/index.html)
|
||||
- [CNET](https://www.cnet.com/news/no-the-internet-is-not-broken-amazon-web-services-is-just-having-issues/?ftag=COS-05-10-aa0a&linkId=34980800)
|
||||
- [MIT Technology Review](https://www.technologyreview.com/s/603738/centralized-web-services-are-wonderful-until-they-go-wrong/?_ga=1.82562070.1263144274.1488319022)
|
||||
- [GolangNews](https://golangnews.com/stories/1835-serverless-is-wonderfuluntil-they-go-wrong.)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Explore [these questions](http://support.iris-go.com/) and join to our [community chat][Chat]!
|
||||
|
||||
-->
|
||||
|
||||
Testing
|
||||
------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user