The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio 🚀
Go to file
2018-06-26 17:36:08 +03:00
_benchmarks fix _benchmarks/iris-mvc-templates 2017-12-31 20:33:33 +02:00
_examples session examples: add the 'AllowReclaim: true' session.Config field to true, help users like https://github.com/kataras/iris/issues/1031\#issuecomment-399894693 2018-06-25 20:21:52 +03:00
.github Sessions are now in full sync with the registered database, on acquire(init), set, get, delete, clear, visit, len, release(destroy) as requested by almost everyone. https://github.com/kataras/iris/issues/969 2018-04-22 13:52:36 +03:00
cache misspell fixes 2018-03-21 08:59:37 +02:00
context Cookies: Ability to set custom cookie encoders to encode the cookie's value before sent by ctx.SetCookie and ctx.SetCookieKV and cookie decoders to decode the cookie's value when retrieving from ctx.GetCookie. That was the second and final part relative to a community's question at: https://github.com/kataras/iris/issues/1018 2018-06-02 16:35:18 +03:00
core Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
hero add vscode extension link and badge | Some internal improvements (not completed yet) 2018-01-25 03:16:49 +02:00
httptest Some minor but helpful additions, like CookieOption. Relative: https://github.com/kataras/iris/issues/1018. Simple cookies example added too. Cookie encoding (side by side with the already session's cookie id encoding) and version upgrade will come tomorrow with a new HISTORY.md entry as well, stay tuned! 2018-06-02 07:28:40 +03:00
middleware middleware/logger: new configuration field, defaults to false: Query bool, if true prints the full path, including the URL query as requested at https://github.com/kataras/iris/issues/1017 2018-05-31 01:39:23 +03:00
mvc remove the complicated fallback handlers, that didn't work and not approve the coblexity addition of the https://github.com/kataras/iris/pull/919, RouteExists accepts first argument the Context, add new AllowMethods per party and fix cors by 048e2be034 https://github.com/kataras/iris/issues/922, rel: https://github.com/iris-contrib/middleware/issues/36, https://github.com/iris-contrib/middleware/issues/34, https://github.com/iris-contrib/middleware/issues/32, https://github.com/iris-contrib/middleware/issues/30, https://github.com/kataras/iris/pull/909 2018-03-10 14:22:56 +02:00
sessions fix https://github.com/kataras/iris/issues/1020, redis database stores the int as float64, so make that type assertion on GetInt as well 2018-06-03 02:47:48 +03:00
typescript add a code snippet as a very simplistic overview and update the license dates from 2017 to 2017-2018 2017-12-31 06:45:12 +02:00
view Update vendor for Pug (Jade) Parser and add Iris + Pug examples in the _examples/view folder, relative to https://github.com/kataras/iris/issues/1003 2018-05-26 22:49:48 +03:00
websocket websocket: fix a bug on emit on specific room when it doesn't exist it sends to all connections caused by a third-party contributor's PR... 2018-05-02 17:47:14 +03:00
.gitattributes update protobuf vendor for badger session database 2018-06-24 14:24:58 +03:00
.gitignore update protobuf vendor for badger session database 2018-06-24 14:24:58 +03:00
.travis.yml Sessions are now in full sync with the registered database, on acquire(init), set, get, delete, clear, visit, len, release(destroy) as requested by almost everyone. https://github.com/kataras/iris/issues/969 2018-04-22 13:52:36 +03:00
AUTHORS Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
CODE_OF_CONDUCT.md Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
configuration_test.go Do not create the global configuration in homedir by-default, as, correctly, requested on chat. Use iris.WithGlobalConfiguration with a pre-defined iris.yml file on your home directory, existing users will not have any issues, new one will have to create the file before 2018-03-27 09:59:29 +03:00
configuration.go Do not create the global configuration in homedir by-default, as, correctly, requested on chat. Use iris.WithGlobalConfiguration with a pre-defined iris.yml file on your home directory, existing users will not have any issues, new one will have to create the file before 2018-03-27 09:59:29 +03:00
CONTRIBUTING.md Sessions are now in full sync with the registered database, on acquire(init), set, get, delete, clear, visit, len, release(destroy) as requested by almost everyone. https://github.com/kataras/iris/issues/969 2018-04-22 13:52:36 +03:00
deprecated.go remove old deprecated code from previous version, no need to keep backward compatibility, it was two months ago v10.0.0 released so we should be ok now 2018-02-12 06:03:15 +02:00
doc.go Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
Dockerfile Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
Dockerfile.build no need to default the Configuration.RemoteAddrHeaders to a list of 'dissalowed' header names, the ctx.RemoteAddr() made unnecessary checks if no X-header was passed, even if they defaulted to false, this will not give a crazy improvement but it's a good practise 2018-01-25 06:31:05 +02:00
FAQ.md add vscode extension link and badge | Some internal improvements (not completed yet) 2018-01-25 03:16:49 +02:00
go19.go Some minor but helpful additions, like CookieOption. Relative: https://github.com/kataras/iris/issues/1018. Simple cookies example added too. Cookie encoding (side by side with the already session's cookie id encoding) and version upgrade will come tomorrow with a new HISTORY.md entry as well, stay tuned! 2018-06-02 07:28:40 +03:00
Gopkg.lock add kataras/survey to the Gopkg.toml although I do NOT recommend using 'dep' or 'gp' or any other third-party tool for your dependencies -- Go is not ready for that, at least yet. Iris is fully vendored you don't need those here. Rel: https://github.com/kataras/iris/issues/1029\#issuecomment-400272324 2018-06-26 17:36:08 +03:00
Gopkg.toml add kataras/survey to the Gopkg.toml although I do NOT recommend using 'dep' or 'gp' or any other third-party tool for your dependencies -- Go is not ready for that, at least yet. Iris is fully vendored you don't need those here. Rel: https://github.com/kataras/iris/issues/1029\#issuecomment-400272324 2018-06-26 17:36:08 +03:00
HISTORY_GR.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
HISTORY_ID.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
HISTORY_ZH.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
HISTORY.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
iris.go Cookies: Ability to set custom cookie encoders to encode the cookie's value before sent by ctx.SetCookie and ctx.SetCookieKV and cookie decoders to decode the cookie's value when retrieving from ctx.GetCookie. That was the second and final part relative to a community's question at: https://github.com/kataras/iris/issues/1018 2018-06-02 16:35:18 +03:00
LICENSE add a code snippet as a very simplistic overview and update the license dates from 2017 to 2017-2018 2017-12-31 06:45:12 +02:00
README_GR.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README_ID.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README_JPN.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README_PT_BR.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README_RU.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README_ZH.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
README.md Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00
VERSION Update to version 10.6.6. Read https://github.com/kataras/iris/blob/master/HISTORY.md#tu-05-june-2018--v1066 for more 2018-06-05 01:24:35 +03:00

Iris Web Framework

build status report card vscode-iris chat view examples release

Iris is a fast, simple yet fully featured and very efficient web framework for Go.

Iris provides a beautifully expressive and easy to use foundation for your next website or API.

Finally, a real expressjs equivalent for the Go Programming Language.

Learn what others say about Iris and star this github repository to stay up to date.

Backers

Thank you to all our backers! 🙏 Become a backer

$ cat example.go
package main

import "github.com/kataras/iris"

func main() {
    app := iris.New()
    // Load all templates from the "./views" folder
    // where extension is ".html" and parse them
    // using the standard `html/template` package.
    app.RegisterView(iris.HTML("./views", ".html"))

    // Method:    GET
    // Resource:  http://localhost:8080
    app.Get("/", func(ctx iris.Context) {
        // Bind: {{.message}} with "Hello world!"
        ctx.ViewData("message", "Hello world!")
        // Render template file: ./views/hello.html
        ctx.View("hello.html")
    })

    // Method:    GET
    // Resource:  http://localhost:8080/user/42
    //
    // Need to use a custom regexp instead?
    // Easy,
    // just mark the parameter's type to 'string'
    // which accepts anything and make use of
    // its `regexp` macro function, i.e:
    // app.Get("/user/{id:string regexp(^[0-9]+$)}")
    app.Get("/user/{id:long}", func(ctx iris.Context) {
        userID, _ := ctx.Params().GetInt64("id")
        ctx.Writef("User ID: %d", userID)
    })

    // Start the server using a network address.
    app.Run(iris.Addr(":8080"))
}

Learn more about path parameter's types by clicking here

<!-- file: ./views/hello.html -->
<html>
<head>
    <title>Hello Page</title>
</head>
<body>
    <h1>{{.message}}</h1>
</body>
</html>
$ go run example.go
Now listening on: http://localhost:8080
Application Started. Press CTRL+C to shut down.
_

Installation

The only requirement is the Go Programming Language

$ go get -u github.com/kataras/iris

Iris takes advantage of the vendor directory feature. You get truly reproducible builds, as this method guards against upstream renames and deletes.

Iris vs .NET Core(C#) vs Node.js (Express)

Updated at: Tuesday, 21 November 2017

Benchmarks from third-party source over the rest web frameworks

Comparison with other frameworks

Support

  • HISTORY file is your best friend, it contains information about the latest features and changes
  • Did you happen to find a bug? Post it at github issues
  • Do you have any questions or need to speak with someone experienced to solve a problem at real-time? Join us to the community chat
  • Complete our form-based user experience report by clicking here
  • Do you like the framework? Tweet something about it! The People have spoken:



For more information about contributing to the Iris project please check the CONTRIBUTING.md file.

List of all Contributors

Learn

First of all, the most correct way to begin with a web framework is to learn the basics of the programming language and the standard http capabilities, if your web application is a very simple personal project without performance and maintainability requirements you may want to proceed just with the standard packages. After that follow the guidelines:

  • Navigate through 100+1 examples and some iris starter kits we crafted for you
  • Read the godocs for any details
  • Prepare a cup of coffee or tea, whatever pleases you the most, and read some articles we found for you

Iris starter kits

  1. A basic web app built in Iris for Go
  2. A mini social-network created with the awesome Iris💖💖
  3. Iris isomorphic react/hot reloadable/redux/css-modules starter kit
  4. Demo project with react using typescript and Iris
  5. Self-hosted Localization Management Platform built with Iris and Angular
  6. Iris + Docker and Kubernetes
  7. Quickstart for Iris with Nanobox
  8. A Hasura starter project with a ready to deploy Golang hello-world web app with IRIS

Did you build something similar? Let us know!

Middleware

Iris has a great collection of handlers[1][2] that you can use side by side with your web apps. However you are not limited to them - you are free to use any third-party middleware that is compatible with the net/http package, _examples/convert-handlers will show you the way.

Iris, unlike others, is 100% compatible with the standards and that's why the majority of the big companies that adapt Go to their workflow, like a very famous US Television Network, trust Iris; it's up-to-date and it will be always aligned with the std net/http package which is modernized by the Go Authors on each new release of the Go Programming Language.

Articles

Video Courses

Get hired

There are many companies and start-ups looking for Go web developers with Iris experience as requirement, we are searching for you every day and we post those information via our facebook page, like the page to get notified, we have already posted some of them.

License

Iris is licensed under the 3-Clause BSD License. Iris is 100% free and open-source software.

For any questions regarding the license please send e-mail.