github.com/iris-framework/iris (go): Package iris is a web framework which provides efficient and well-designed tools with robust set of features to create your awesome and high-performance web application powered by unlimited potentials and portability.  Source code and other details for the project are available at GitHub:  Looking for further support?  Note: This package is under active development status. Each month a new version is releasing to adapt the latest web trends and technologies.  Iris is a very pluggable ecosystem, router can be customized by adapting a 'RouterBuilderPolicy && RouterReversionPolicy'.  With the power of Iris' router adaptors, developers are able to use any third-party router's path features without any implications to the rest of their API.  A Developer is able to select between two out-of-the-box powerful routers:  Httprouter, it's a custom version of https://github.comjulienschmidt/httprouter, which is edited to support iris' subdomains, reverse routing, custom http errors and a lot features, it should be a bit faster than the original too because of iris' Context. It uses `/mypath/:firstParameter/path/:secondParameter` and `/mypath/*wildcardParamName` .  Gorilla Mux, it's the https://github.com/gorilla/mux which supports subdomains, custom http errors, reverse routing, pattern matching via regex and the rest of the iris' features. It uses `/mypath/{firstParameter:any-regex-valid-here}/path/{secondParameter}` and `/mypath/{wildcardParamName:.*}`  Example code:  Run  All HTTP methods are supported, users can register handlers for same paths on different methods. The first parameter is the HTTP Method, second parameter is the request path of the route, third variadic parameter should contains one or more iris.Handler/HandlerFunc executed by the registered order when a user requests for that specific resouce path from the server.  Example code:  In order to make things easier for the user, Iris provides functions for all HTTP Methods. The first parameter is the request path of the route, second variadic parameter should contains one or more iris.HandlerFunc executed by the registered order when a user requests for that specific resouce path from the server.  Example code:  Path Parameters' syntax depends on the selected router. This is the only difference between the routers, the registered path form, the API remains the same for both.  Example `gorillamux` code:  Example `httprouter` code:  A set of routes that are being groupped by path prefix can (optionally) share the same middleware handlers and template layout. A group can have a nested group too.  `.Party` is being used to group routes, developers can declare an unlimited number of (nested) groups.  Example code:  With iris users are able to register their own handlers for http statuses like 404 not found, 500 internal server error and so on.  Example code:  Custom http errors can be also be registered to a specific group of routes.  Example code:  Static Files  Example code:  Middleware is just a concept of ordered chain of handlers. Middleware can be registered globally, per-party, per-subdomain and per-route.  Example code:  Let's convert the https://github.com/rs/cors net/http external middleware which returns a `next form` handler.  Example code:  Iris supports 5 template engines out-of-the-box, developers can still use any external golang template engine, as `context.ResponseWriter` is an `io.Writer`.  All of these five template engines have common features with common API, like Layout, Template Funcs, Party-specific layout, partial rendering and more.  Example code:  View engine supports bundled(https://github.com/jteeuwen/go-bindata) template files too. go-bindata gives you two functions, asset and assetNames, these can be setted to each of the template engines using the `.Binary` func.  Example code:  A real example can be found here: https://github.com/kataras/iris/tree/v6/_examples/intermediate/view/embedding-templates-into-app.  Enable auto-reloading of templates on each request. Useful while developers are in dev mode as they no neeed to restart their app on every template edit.  Example code:  Each one of these template engines has different options located here: https://github.com/kataras/iris/tree/v6/adaptors/view .  But you should have a basic idea of the framework by now, we just scratched the surface. If you enjoy what you just saw and want to learn more, please follow the below links:  * Examples: https://github.com/iris-contrib/examples  * Adaptors: https://github.com/kataras/iris/tree/v6/adaptors  * Middleware: https://github.com/kataras/iris/tree/v6/middleware and * https://github.com/iris-contrib/middleware  Package iris is a web framework which provides efficient and well-designed tools with robust set of features to create your awesome and high-performance web application powered by unlimited potentials and portability  For view engines, render engines, sessions, websockets, subdomains, automatic-TLS, context support with 50+ handy http functions, dynamic subdomains, router & routes, parties of subdomains & routes, access control, typescript compiler, basicauth,internalization, logging, and much more,  please visit https://godoc.org/gopkg.in/kataras/iris.v6
Keywords: cross-platform|easy-to-use|go|golang|high-performance|http2|iris|respect-for-the-contributors|web-framework