diff --git a/README.md b/README.md index d30704ab..cef98940 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Chat

-Iris is a well-known web application framework written in Go. +Iris is the fastest back-end web framework written in Go.
Easy to learn while it's highly customizable, ideally suited for
both experienced and novice developers.

@@ -40,49 +40,52 @@ If you're coming from Node.js world, this i

-

-

- - -  This project started ~9 months ago
-  and rapidly won your trust,
-  I'm very thankful for this and
-  I promise you that I'll continue to
-  do my bests.

- -  All people, poor or rich, should give
-  and share with each others. -

-  As a person who knows
-  how someone feels when opens
-  the fridge and finds nothing to eat, again,
-  I decided that all the money you
-  donated so far[424 EUR]
,
-  and until the end of this month,
-  should go back to the people
-  who need them most.

-  Is not enough but... - - - -
-
- -  CHRISTMAS IS MOST TRULY
-  CHRISTMAS WHEN WE
-  CELEBRATE IT BY GIVING THE
-  LIGHT OF LOVE TO THOSE
-  WHO NEED IT MOST. -

-        ~ Ruth Carter Stapleton - -
-
-
+Benchmark Wizzard July 21, 2016- Processing Time Horizontal Graph

+Feature Overview +----------- + +- Focus on high performance +- Automatically install and serve certificates from https://letsencrypt.org +- Robust routing and middleware ecosystem +- Build RESTful APIs +- Group API's and subdomains with wildcard support +- Body binding for JSON, XML, Forms, can be extended to use your own custom binders +- More than 50 handy functions to send HTTP responses +- View system: supporting more than 6+ template engines, with prerenders. You can still use your favorite +- Define virtual hosts and (wildcard) subdomains with path level routing +- Graceful shutdown +- Limit request body +- Localization i18N +- Serve static files +- Cache +- Log requests +- Customizable format and output for the logger +- Customizable HTTP errors +- Compression (Gzip) +- Authentication + - OAuth, OAuth2 supporting 27+ popular websites + - JWT + - Basic Authentication + - HTTP Sessions +- Add / Remove trailing slash from the URL with option to redirect +- Redirect requests + - HTTP to HTTPS + - HTTP to HTTPS WWW + - HTTP to HTTPS non WWW + - Non WWW to WWW + - WWW to non WWW +- Highly scalable rich content render (Markdown, JSON, JSONP, XML...) +- Websocket-only API similar to socket.io +- Hot Reload on source code changes +- Typescript integration + Web IDE +- Checks for updates at startup +- Highly customizable +- Feels like you used iris forever, thanks to its Fluent API +- And many others... Quick Start ----------- @@ -134,6 +137,49 @@ $ go run hellojson.go Open your browser or any other http client at http://localhost:5700/api/user/42. +### Merry Christmas! + +

+ + + +  This project started ~9 months ago
+  and rapidly won your trust,
+  I'm very thankful for this and
+  I promise you that I'll continue to
+  do my bests.

+ +  All people, poor or rich, should give
+  and share with each others. +

+  As a person who knows
+  how someone feels when opens
+  the fridge and finds nothing to eat, again,
+  I decided that all the money you
+  donated so far[424 EUR]
,
+  and until the end of this month,
+  should go back to the people
+  who need them most.

+  Is not enough but... + + + +
+
+ +  CHRISTMAS IS MOST TRULY
+  CHRISTMAS WHEN WE
+  CELEBRATE IT BY GIVING THE
+  LIGHT OF LOVE TO THOSE
+  WHO NEED IT MOST. +

+        ~ Ruth Carter Stapleton + +
+
+
+

+ ### New ```go diff --git a/http_test.go b/http_test.go index 3b914f1f..3999b6ee 100644 --- a/http_test.go +++ b/http_test.go @@ -152,12 +152,6 @@ func getRandomNumber(min int, max int) int { return rand.Intn(max-min) + min } -func getRandomPort() int { - min := 6666 - max := 7777 - return getRandomNumber(min, max) -} - // works as // defer listenTLS(iris.Default, hostTLS)() func listenTLS(api *iris.Framework, hostTLS string) func() { @@ -201,13 +195,13 @@ func TestMultiRunningServers_v1_PROXY(t *testing.T) { iris.ResetDefault() host := "localhost" // you have to add it to your hosts file( for windows, as 127.0.0.1 mydomain.com) - hostTLS := host + ":" + strconv.Itoa(getRandomPort()) + hostTLS := host + ":" + strconv.Itoa(getRandomNumber(8886, 8889)) iris.Get("/", func(ctx *iris.Context) { ctx.Write("Hello from %s", hostTLS) }) - proxyHost := host + ":" + strconv.Itoa(getRandomNumber(3333, 4444)) + proxyHost := host + ":" + strconv.Itoa(getRandomNumber(3300, 3332)) closeProxy := iris.Proxy(proxyHost, "https://"+hostTLS) defer closeProxy() @@ -225,7 +219,7 @@ func TestMultiRunningServers_v2(t *testing.T) { iris.ResetDefault() domain := "localhost" - hostTLS := domain + ":" + strconv.Itoa(getRandomPort()) + hostTLS := domain + ":" + strconv.Itoa(getRandomNumber(3333, 4444)) srv1Host := domain + ":" + strconv.Itoa(getRandomNumber(4446, 5444)) srv2Host := domain + ":" + strconv.Itoa(getRandomNumber(7778, 8887)) @@ -233,11 +227,6 @@ func TestMultiRunningServers_v2(t *testing.T) { ctx.Write("Hello from %s", hostTLS) }) - // add a secondary server - //Servers.Add(ServerConfiguration{ListeningAddr: domain + ":80", RedirectTo: "https://" + host, Virtual: true}) - // add our primary/main server - //Servers.Add(ServerConfiguration{ListeningAddr: host, CertFile: certFile.Name(), KeyFile: keyFile.Name(), Virtual: true}) - // using the proxy handler fsrv1 := &fasthttp.Server{Handler: iris.ProxyHandler(srv1Host, "https://"+hostTLS)} go fsrv1.ListenAndServe(srv1Host) @@ -394,7 +383,7 @@ func TestMuxSimpleParty(t *testing.T) { p.Get("/namedpath/:param1/something/:param2/else", h) } - iris.Default.Config.VHost = "0.0.0.0:" + strconv.Itoa(getRandomPort()) + iris.Default.Config.VHost = "0.0.0.0:" + strconv.Itoa(getRandomNumber(2222, 2399)) // iris.Default.Config.Tester.Debug = true // iris.Default.Config.Tester.ExplicitURL = true e := httptest.New(iris.Default, t)