V4 LTS, check the HISTORY.md

This commit is contained in:
Gerasimos Maropoulos 2016-10-21 03:06:50 +03:00
parent fe71a8acbe
commit 5c896b39a5
7 changed files with 87 additions and 99 deletions

View File

@ -1,16 +1,21 @@
##### Note that I do not accept pull requests and that I use the issue tracker for bug reports and proposals only. Please ask questions on the [https://kataras.rocket.chat/channel/iris][Chat] or [http://stackoverflow.com/](http://stackoverflow.com).
Unless otherwise noted, the Iris source files are distributed
under the Apache Version 2 license found in the [LICENSE file](https://github.com/kataras/iris/blob/master/LICENSE).
## Before Submitting an Issue ## Before Submitting an Issue
First, please do a search in open issues to see if the issue or feature request has already been filed. If there is an issue add your comments to this issue. First, please do a search in open issues to see if the issue or feature request has already been filed. If there is an issue add your comments to this issue.
The Iris project is distributed across multiple repositories, try to file the issue against the correct repository, The Iris project is distributed across multiple repositories, try to file the issue against the correct repository,
- [Iris - middleware](https://github.com/iris-contrib/middleware/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - cli and rizla](https://github.com/kataras/rizla/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - cli and rizla](https://github.com/kataras/rizla/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - templates](https://github.com/kataras/go-template/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - templates](https://github.com/kataras/go-template/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - sessions](https://github.com/kataras/go-sessions/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - sessions](https://github.com/kataras/go-sessions/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - websocket](https://github.com/kataras/go-websocket/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - websocket](https://github.com/kataras/go-websocket/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - gitbook](https://github.com/iris-contrib/gitbook/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - gitbook](https://github.com/iris-contrib/gitbook/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - examples](https://github.com/iris-contrib/examples/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - examples](https://github.com/iris-contrib/examples/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - middleware](https://github.com/iris-contrib/middleware/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - plugin](https://github.com/iris-contrib/plugin/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - plugin](https://github.com/iris-contrib/plugin/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - graceful](https://github.com/iris-contrib/graceful/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - graceful](https://github.com/iris-contrib/graceful/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
- [Iris - mail](https://github.com/iris-contrib/mail/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue) - [Iris - mail](https://github.com/iris-contrib/mail/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue)
@ -32,9 +37,6 @@ The author answers the same day, perhaps the same hour you post the issue.
It is impossible to notify each user on every change, so to be aware of the framework's changes and be notify about updates It is impossible to notify each user on every change, so to be aware of the framework's changes and be notify about updates
please **star** or **watch** the repository. please **star** or **watch** the repository.
If your issue is a closed-personal question then please ask that question on [community chat][Chat]. If your issue is a closed-personal question then please ask that question on [community chat][Chat].

View File

@ -1,4 +1,4 @@
- Version : **4.6.0** - Version : **V4-LTS**
- Operating System: - Operating System:

View File

@ -1,8 +1,3 @@
- [x] I have read the [book](https://www.gitbook.com/book/kataras/iris/details), [examples](https://github.com/iris-contrib/examples), [contributing file](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md) and I'm sure that this worths to be a PR on the Iris repository. If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md).
- [x] I have opened an issue and discuss this feature/fix with the Community, I got @kataras permission to post this PR. ##### Note that I do not accept pull requests and that I use the issue tracker for bug reports and proposals only. Please ask questions on the [https://kataras.rocket.chat/channel/iris][Chat] or [http://stackoverflow.com/](http://stackoverflow.com).
- Operating System(s) that this PR was tested:
Description and notes:

View File

@ -14,7 +14,7 @@ Feel free to send **any** amount through paypal
Benefits: Benefits:
- Your github username,after your approval, is visible here . I respect your privacy at any case. - Your github username, after your approval, is visible on the top of the README page and here.
- Access to the 'donors' [private chat room](https://kataras.rocket.chat/group/donors), real-time assistance by me. - Access to the 'donors' [private chat room](https://kataras.rocket.chat/group/donors), real-time assistance by me.
- Each donate gives lifetime to the Iris web framework. The author works full-time on this project, no time for any part-time job. - Each donate gives lifetime to the Iris web framework. The author works full-time on this project, no time for any part-time job.
@ -25,7 +25,7 @@ Benefits:
I'm grateful for all the generous donations. Iris is fully funded by these donations. I'm grateful for all the generous donations. Iris is fully funded by these donations.
#### Donors #### Donations
- [Ryan Brooks](https://github.com/ryanbyyc) donated 50 EUR at May 11 - [Ryan Brooks](https://github.com/ryanbyyc) donated 50 EUR at May 11
- [Juan Sebastián Suárez Valencia](https://github.com/Juanses) donated 20 EUR at September 11 - [Juan Sebastián Suárez Valencia](https://github.com/Juanses) donated 20 EUR at September 11
@ -33,13 +33,15 @@ I'm grateful for all the generous donations. Iris is fully funded by these dona
- [Celso Luiz](https://github.com/celsosz) donated 50 EUR at September 29 - [Celso Luiz](https://github.com/celsosz) donated 50 EUR at September 29
- ANONYMOUS(Waiting For Approval) donated 6 EUR at October 1 - ANONYMOUS(Waiting For Approval) donated 6 EUR at October 1
- [Ankur Srivastava](https://github.com/ansrivas) donated 20 EUR at October 2 - [Ankur Srivastava](https://github.com/ansrivas) donated 20 EUR at October 2
- ANONYMOUS(Waiting For Approval) donated 100 EUR at October 18
- ANONYMOUS(Waiting For Approval) donated 20 EUR at October 19
> The name or/and github username link added after donator's approvement. > The name or/and github username link added after donator's approvement via e-mail.
#### Report, so far #### Report, so far
- 13 EUR for the domain, [iris-go.com](https://iris-go.com) - 13 EUR for the domain, [iris-go.com](https://iris-go.com)
**Available**: VAT(50) + VAT(20) + VAT(20) + VAT(50) + VAT(6) + VAT(20) - 13 = 47,45 + 18,97 + 18,61 + 47,05 + 5,34 + 18,97 - 13 = **Available**: VAT(50) + VAT(20) + VAT(20) + VAT(50) + VAT(6) + VAT(20) + VAT(100) + VAT(20) - 13 = 47,45 + 18,97 + 18,61 + 47,05 + 5,34 + 18,97 + 98,04 +18,97 - 13 =
143,139 EUR 260,14 EUR

View File

@ -19,7 +19,7 @@
<br/> <br/>
<a href="https://github.com/kataras/iris/releases"><img src="https://img.shields.io/badge/%20version%20-%204.6.1%20-blue.svg?style=flat-square" alt="Releases"></a> <a href="https://github.com/kataras/iris/releases"><img src="https://img.shields.io/badge/%20version%20-%204%20LTS%20-blue.svg?style=flat-square" alt="Releases"></a>
<a href="https://github.com/iris-contrib/examples"><img src="https://img.shields.io/badge/%20examples-repository-3362c2.svg?style=flat-square" alt="Examples"></a> <a href="https://github.com/iris-contrib/examples"><img src="https://img.shields.io/badge/%20examples-repository-3362c2.svg?style=flat-square" alt="Examples"></a>
@ -31,31 +31,21 @@
The <a href="https://github.com/kataras/iris#benchmarks">fastest</a> back-end web framework written in Go. The <a href="https://github.com/kataras/iris#benchmarks">fastest</a> back-end web framework written in Go.
<br/> <br/>
Easy to <a href="https://docs.iris-go.com">learn</a>, while it's highly customizable. <br/> Easy to <a href="https://docs.iris-go.com">learn</a>, while it's highly customizable. <br/>
Ideally suited for both experienced and novice <b>Developers</b>. Ideally suited for both experienced and novice Developers.
</p> </p>
**Thanks** to all these generous donations, the Iris project remains a high quality open-source framework
## News
- [Building Web Apps with Iris](http://mycodesmells.com/post/building-web-apps-with-iris) by Paweł Słomka
- [The fastest web framework for Go](http://marcoscleison.xyz/the-fastest-web-framework-for-go-in-this-earth/) by Marcos Cleison
- [Testing Iris RESTful API](https://drasko.github.io/2016/09/26/testing-iris-restful-api/) by Drasko Draskovic
- [Iris vs Nginx vs Php vs Nodejs](https://www.ntossapo.me/2016/08/13/nginx-vs-nginx-php-fpm-vs-go-iris-vs-express-with-wrk/) by Tossapon Nuanchuay
### Donates
I left my job and university to work explicit on Iris, so I'm grateful for all the generous donations[*](DONATIONS.md)
- [Ryan Brooks](https://github.com/ryanbyyc) donated 50 EUR at May 11 - [Ryan Brooks](https://github.com/ryanbyyc) donated 50 EUR at May 11
- [Juan Sebastián Suárez Valencia](https://github.com/Juanses) donated 20 EUR at September 11 - [Juan Sebastián Suárez Valencia](https://github.com/Juanses) donated 20 EUR at September 11
- [Bob Lee](https://github.com/li3p) donated 20 EUR at September 16 - [Bob Lee](https://github.com/li3p) donated 20 EUR at September 16
- [Celso Luiz](https://github.com/celsosz) donated 50 EUR at September 29 - [Celso Luiz](https://github.com/celsosz) donated 50 EUR at September 29
- [Anonymous](https://github.com/kataras/iris/blob/master/DONATIONS.md#donations) donated 6 EUR at October 1
- [Ankur Srivastava](https://github.com/ansrivas) donated 20 EUR at October 2 - [Ankur Srivastava](https://github.com/ansrivas) donated 20 EUR at October 2
- [Anonymous](https://github.com/kataras/iris/blob/master/DONATIONS.md#donations) donated 100 EUR at October 18
- [Anonymous](https://github.com/kataras/iris/blob/master/DONATIONS.md#donations) donated 20 EUR at October 19
## Feature Overview ## Feature Overview
@ -878,43 +868,50 @@ I recommend writing your API tests using this new library, [httpexpect](https://
Versioning Versioning
------------ ------------
Current: **v4.6.1** Current: **V4 LTS**
> Iris is an active project A new LTS version is released every 6 months
Read more about Semantic Versioning 2.0.0 > LTS stands for Long Term Support
- http://semver.org/
- https://en.wikipedia.org/wiki/Software_versioning
- https://wiki.debian.org/UpstreamGuide#Releases_and_Versions
Todo Todo for the next release
------------ ------------
- [ ] Server-side React render, as requested [here](https://github.com/kataras/iris/issues/503)
Iris is a **Community-Driven** Project, waiting for your suggestions and [feature requests](https://github.com/kataras/iris/issues?utf8=%E2%9C%93&q=label%3A%22feature%20request%22)! Iris is a **Community-Driven** Project, waiting for your suggestions and [feature requests](https://github.com/kataras/iris/issues?utf8=%E2%9C%93&q=label%3A%22feature%20request%22)!
People People
------------ ------------
The big thanks goes to [all people](https://github.com/kataras/iris/issues?utf8=%E2%9C%93&q=label%3A%22feature+request%22) who help building this framework with feature-requests & bug reports!
The author of Iris is [@kataras](https://github.com/kataras). If **you**'re willing to donate, feel **free** to navigate to the [DONATIONS PAGE](https://github.com/kataras/iris/blob/master/DONATIONS.md). The author of Iris is [@kataras](https://github.com/kataras).
If **you**'re willing to donate and you can afford the cost, feel **free** to navigate to the [DONATIONS PAGE](https://github.com/kataras/iris/blob/master/DONATIONS.md).
Contributing Contributing
------------ ------------
Iris is the work of hundreds of the community's [feature requests](https://github.com/kataras/iris/issues?utf8=%E2%9C%93&q=%20label%3A%22feature%20request%22%20) and [reports](https://github.com/kataras/iris/issues?utf8=%E2%9C%93&q=label%3Abug). I appreciate your help!
If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md). If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md).
##### Note that I do not accept pull requests and that I use the issue tracker for bug reports and proposals only. Please ask questions on the [https://kataras.rocket.chat/channel/iris][Chat] or [http://stackoverflow.com/](http://stackoverflow.com).
License License
------------ ------------
This project is licensed under the [Apache License, Version 2.0](LICENSE), Copyright (c) 2016 Gerasimos Maropoulos. Unless otherwise noted, the Iris source files are distributed
under the Apache Version 2 license found in the [LICENSE file](LICENSE).
[Travis Widget]: https://img.shields.io/travis/kataras/iris.svg?style=flat-square [Travis Widget]: https://img.shields.io/travis/kataras/iris.svg?style=flat-square
[Travis]: http://travis-ci.org/kataras/iris [Travis]: http://travis-ci.org/kataras/iris
[License Widget]: https://img.shields.io/badge/license-Apache%20Version%202-E91E63.svg?style=flat-square [License Widget]: https://img.shields.io/badge/license-Apache%20Version%202-E91E63.svg?style=flat-square
[License]: https://github.com/kataras/iris/blob/master/LICENSE [License]: https://github.com/kataras/iris/blob/master/LICENSE
[Release Widget]: https://img.shields.io/badge/release-4.6.1%20-blue.svg?style=flat-square [Release Widget]: https://img.shields.io/badge/release-V4%20LTS%20-blue.svg?style=flat-square
[Release]: https://github.com/kataras/iris/releases [Release]: https://github.com/kataras/iris/releases
[Chat Widget]: https://img.shields.io/badge/community-chat%20-00BCD4.svg?style=flat-square [Chat Widget]: https://img.shields.io/badge/community-chat%20-00BCD4.svg?style=flat-square
[Chat]: https://kataras.rocket.chat/channel/iris [Chat]: https://kataras.rocket.chat/channel/iris

96
http.go
View File

@ -3,6 +3,10 @@ package iris
import ( import (
"bytes" "bytes"
"crypto/tls" "crypto/tls"
"github.com/iris-contrib/letsencrypt"
"github.com/kataras/go-errors"
"github.com/valyala/fasthttp"
"github.com/valyala/fasthttp/fasthttpadaptor"
"log" "log"
"net" "net"
"net/http" "net/http"
@ -12,11 +16,6 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"github.com/iris-contrib/letsencrypt"
"github.com/kataras/go-errors"
"github.com/valyala/fasthttp"
"github.com/valyala/fasthttp/fasthttpadaptor"
) )
const ( const (
@ -65,7 +64,6 @@ var (
// MethodTraceBytes "TRACE" // MethodTraceBytes "TRACE"
MethodTraceBytes = []byte(MethodTrace) MethodTraceBytes = []byte(MethodTrace)
/* */ /* */
) )
const ( const (
@ -73,7 +71,6 @@ const (
StatusContinue = 100 StatusContinue = 100
// StatusSwitchingProtocols http status '101' // StatusSwitchingProtocols http status '101'
StatusSwitchingProtocols = 101 StatusSwitchingProtocols = 101
// StatusOK http status '200' // StatusOK http status '200'
StatusOK = 200 StatusOK = 200
// StatusCreated http status '201' // StatusCreated http status '201'
@ -88,7 +85,6 @@ const (
StatusResetContent = 205 StatusResetContent = 205
// StatusPartialContent http status '206' // StatusPartialContent http status '206'
StatusPartialContent = 206 StatusPartialContent = 206
// StatusMultipleChoices http status '300' // StatusMultipleChoices http status '300'
StatusMultipleChoices = 300 StatusMultipleChoices = 300
// StatusMovedPermanently http status '301' // StatusMovedPermanently http status '301'
@ -103,7 +99,6 @@ const (
StatusUseProxy = 305 StatusUseProxy = 305
// StatusTemporaryRedirect http status '307' // StatusTemporaryRedirect http status '307'
StatusTemporaryRedirect = 307 StatusTemporaryRedirect = 307
// StatusBadRequest http status '400' // StatusBadRequest http status '400'
StatusBadRequest = 400 StatusBadRequest = 400
// StatusUnauthorized http status '401' // StatusUnauthorized http status '401'
@ -150,7 +145,6 @@ const (
StatusRequestHeaderFieldsTooLarge = 431 StatusRequestHeaderFieldsTooLarge = 431
// StatusUnavailableForLegalReasons http status '451' // StatusUnavailableForLegalReasons http status '451'
StatusUnavailableForLegalReasons = 451 StatusUnavailableForLegalReasons = 451
// StatusInternalServerError http status '500' // StatusInternalServerError http status '500'
StatusInternalServerError = 500 StatusInternalServerError = 500
// StatusNotImplemented http status '501' // StatusNotImplemented http status '501'
@ -168,49 +162,45 @@ const (
) )
var statusText = map[int]string{ var statusText = map[int]string{
StatusContinue: "Continue", StatusContinue: "Continue",
StatusSwitchingProtocols: "Switching Protocols", StatusSwitchingProtocols: "Switching Protocols",
StatusOK: "OK",
StatusOK: "OK", StatusCreated: "Created",
StatusCreated: "Created", StatusAccepted: "Accepted",
StatusAccepted: "Accepted", StatusNonAuthoritativeInfo: "Non-Authoritative Information",
StatusNonAuthoritativeInfo: "Non-Authoritative Information", StatusNoContent: "No Content",
StatusNoContent: "No Content", StatusResetContent: "Reset Content",
StatusResetContent: "Reset Content", StatusPartialContent: "Partial Content",
StatusPartialContent: "Partial Content", StatusMultipleChoices: "Multiple Choices",
StatusMovedPermanently: "Moved Permanently",
StatusMultipleChoices: "Multiple Choices", StatusFound: "Found",
StatusMovedPermanently: "Moved Permanently", StatusSeeOther: "See Other",
StatusFound: "Found", StatusNotModified: "Not Modified",
StatusSeeOther: "See Other", StatusUseProxy: "Use Proxy",
StatusNotModified: "Not Modified", StatusTemporaryRedirect: "Temporary Redirect",
StatusUseProxy: "Use Proxy", StatusBadRequest: "Bad Request",
StatusTemporaryRedirect: "Temporary Redirect", StatusUnauthorized: "Unauthorized",
StatusPaymentRequired: "Payment Required",
StatusBadRequest: "Bad Request", StatusForbidden: "Forbidden",
StatusUnauthorized: "Unauthorized", StatusNotFound: "Not Found",
StatusPaymentRequired: "Payment Required", StatusMethodNotAllowed: "Method Not Allowed",
StatusForbidden: "Forbidden", StatusNotAcceptable: "Not Acceptable",
StatusNotFound: "Not Found", StatusProxyAuthRequired: "Proxy Authentication Required",
StatusMethodNotAllowed: "Method Not Allowed", StatusRequestTimeout: "Request Timeout",
StatusNotAcceptable: "Not Acceptable", StatusConflict: "Conflict",
StatusProxyAuthRequired: "Proxy Authentication Required", StatusGone: "Gone",
StatusRequestTimeout: "Request Timeout", StatusLengthRequired: "Length Required",
StatusConflict: "Conflict", StatusPreconditionFailed: "Precondition Failed",
StatusGone: "Gone", StatusRequestEntityTooLarge: "Request Entity Too Large",
StatusLengthRequired: "Length Required", StatusRequestURITooLong: "Request URI Too Long",
StatusPreconditionFailed: "Precondition Failed", StatusUnsupportedMediaType: "Unsupported Media Type",
StatusRequestEntityTooLarge: "Request Entity Too Large", StatusRequestedRangeNotSatisfiable: "Requested Range Not Satisfiable",
StatusRequestURITooLong: "Request URI Too Long", StatusExpectationFailed: "Expectation Failed",
StatusUnsupportedMediaType: "Unsupported Media Type", StatusTeapot: "I'm a teapot",
StatusRequestedRangeNotSatisfiable: "Requested Range Not Satisfiable", StatusPreconditionRequired: "Precondition Required",
StatusExpectationFailed: "Expectation Failed", StatusTooManyRequests: "Too Many Requests",
StatusTeapot: "I'm a teapot", StatusRequestHeaderFieldsTooLarge: "Request Header Fields Too Large",
StatusPreconditionRequired: "Precondition Required", StatusUnavailableForLegalReasons: "Unavailable For Legal Reasons",
StatusTooManyRequests: "Too Many Requests",
StatusRequestHeaderFieldsTooLarge: "Request Header Fields Too Large",
StatusUnavailableForLegalReasons: "Unavailable For Legal Reasons",
StatusInternalServerError: "Internal Server Error", StatusInternalServerError: "Internal Server Error",
StatusNotImplemented: "Not Implemented", StatusNotImplemented: "Not Implemented",
StatusBadGateway: "Bad Gateway", StatusBadGateway: "Bad Gateway",

View File

@ -75,8 +75,10 @@ import (
) )
const ( const (
// Version is the current version of the Iris web framework // IsLongTermSupport flag is true when the below version number is a long-term-support version
Version = "4.6.1" IsLongTermSupport = true
// Version is the current version number of the Iris web framework
Version = "4"
banner = ` _____ _ banner = ` _____ _
|_ _| (_) |_ _| (_)