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
Zeno-Code e542b5f214 Update HISTORY_ZH.md
Former-commit-id: 88ed710683695a2f0520b4fc0ad405891905b505
2018-01-04 03:11:08 +08:00
_benchmarks fix _benchmarks/iris-mvc-templates 2017-12-31 20:33:33 +02:00
_examples add a new article about Iris and Vue.js 2018-01-01 22:14:52 +02:00
.github Update ISSUE_TEMPLATE.md 2017-11-07 02:00:07 +02:00
cache make cache package to work across multi handlers, remove the old 'WrapHandler' and keep the cache.Handler as documented only 2018-01-01 21:53:12 +02:00
context ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
core ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
hero Replace controller's .Register with .Handle and AddDependencies with .Register in order to be aligned with the 'hero' package, all examples and docs are updated, it's crazy how I can't stop even on Christmas 2017-12-27 04:15:41 +02:00
httptest Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
middleware ok the new mvc system works great, all tests done and almost x3 smaller LOC used plus new three awesome features:) - next commit will be commenting out and replace the mvc package with the new mvc2 2017-12-10 07:00:51 +02:00
mvc add GetRoute for MVC Controllers. Give the chance to change rsome route's properties like Name (used for reverse routing in templates, optionally). 2017-12-30 22:04:26 +02:00
sessions 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
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 Fix subfolder templating issue 2017-12-03 23:21:11 -02:00
websocket 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
.gitattributes ok the new mvc system works great, all tests done and almost x3 smaller LOC used plus new three awesome features:) - next commit will be commenting out and replace the mvc package with the new mvc2 2017-12-10 07:00:51 +02:00
.gitignore app. SPA from router wrapper to a simple handler, works faster now. Iris' router respects wildcards with other paths as well (unique) for almost a half year now... so we don't need a whole wrapper for those things anymore, fixes https://github.com/kataras/iris/issues/807 2017-11-10 16:15:47 +02:00
.travis.yml thinking a new way of displaying the README, give no readme hand-written examples, we have the _examples folder already but I should continue creating the new documentation for deep understanding and show a part of it on readme as image(?) 2017-12-24 06:24:45 +02: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 able to share static configuration between multiple server instances based on the homepath+iris.yml file with iris.WithGlobalConfiguration configurator 2017-11-07 01:40:56 +02:00
configuration.go ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
CONTRIBUTING.md add a new article about Iris and Vue.js 2018-01-01 22:14:52 +02:00
deprecated.go ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
doc.go ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
Dockerfile Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
Dockerfile.build Update to version 8.5.5 | Read HISTORY.md 2017-11-02 05:54:33 +02:00
FAQ.md ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00
go19.go remove the old 'mvc' folder - examples are not changed yet - add the 'di' package inside the mvc2 package - which will be renamed to 'mvc' on the next commit - new mvc.Application and some dublications removed - The new version will be version 9 because it will contain breaking changes (not to the end-developer's controllers but to the API they register them) - get ready for 'Christmas Edition' for believers 2017-12-15 20:28:06 +02:00
Gopkg.lock update badger sessiondb 2017-12-27 03:40:10 +02:00
Gopkg.toml update badger sessiondb 2017-12-27 03:40:10 +02:00
HISTORY_ZH.md Update HISTORY_ZH.md 2018-01-04 03:11:08 +08:00
HISTORY.md add(?) the chinese readme, some sentences are from the previous translation by community and the rest.... let's hope someone will help us more here 2017-12-31 07:22:31 +02:00
iris.go one for today, one for tomorrow and ready :) 2017-12-30 20:40:52 +02: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_ZH.md Update README_ZH.md 2018-01-03 12:09:44 +08:00
README.md add a new article about Iris and Vue.js 2018-01-01 22:14:52 +02:00
VERSION ok almost finished. We're good at deadlines eventually. Tomorrow at 23:59 an article will be published same time with the dev branch merge to master 2017-12-31 02:32:28 +02:00

Iris Web Framework

build status report card 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 always up-to-date and it will be aligned with the std net/http package which is modernized by the Go Author on each new release of the Go Programming Language forever.

Articles

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.

Sponsors

Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)

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.