Iris Web Framework
Iris is a fast, simple yet fully featured and very efficient web framework for Go.
It provides a beautifully expressive and easy to use foundation for your next website or API.
Learn what others saying about Iris and star this open-source project to support its potentials.
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
app.Use(iris.Compression)
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})
app.Listen(":8080")
}
As one Go developer once said, Iris got you covered all-round and standing strong over the years.
Some of the features Iris offers:
- HTTP/2 (Push, even Embedded data)
- Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
- API Versioning
- Model-View-Controller
- Websockets
- gRPC
- Auto-HTTPS
- Builtin support for ngrok to put your app on the internet, the fastest way
- Unique Router with dynamic path as parameter with standard types like :uuid, :string, :int... and the ability to create your own
- Compression
- View Engines (HTML, Django, Handlebars, Pug/Jade and more)
- Create your own File Server and host your own WebDAV server
- Cache
- Localization (i18n, sitemap)
- Sessions
- Rich Responses (HTML, Text, Markdown, XML, YAML, Binary, JSON, JSONP, Protocol Buffers, MessagePack, Content Negotiation, Streaming, Server-Sent Events and more)
- Response Compression (gzip, deflate, brotli, snappy, s2)
- Rich Requests (Bind URL Query, Headers, Form, Text, XML, YAML, Binary, JSON, Validation, Protocol Buffers, MessagePack and more)
- Dependency Injection (MVC, Handlers, API Routers)
- Testing Suite
- And the most important... you get fast answers and support from the 1st day until now - that's six full years!
With your help, we can improve Open Source web development for everyone!
📖 Learning Iris
Installation
The only requirement is the Go Programming Language.
Create a new project
$ mkdir myapp
$ cd myapp
$ go mod init myapp
$ go get github.com/kataras/iris/v12@latest
Install on existing project
$ cd myapp
$ go get github.com/kataras/iris/v12@latest
Run
$ go mod tidy -compat=1.22
$ go run .
Iris contains extensive and thorough documentation making it easy to get started with the framework.
For a more detailed technical documentation you can head over to our godocs. And for executable code you can always visit the ./_examples repository's subdirectory.
Do you like to read while traveling?
You can request a PDF and online access of the Iris E-Book (New Edition, future v12.2.0+) today and be participated in the development of Iris.
🙌 Contributing
We'd love to see your contribution to the Iris Web Framework! For more information about contributing to the Iris project please check the CONTRIBUTING.md file.
List of all Contributors
🛡 Security Vulnerabilities
If you discover a security vulnerability within Iris, please send an e-mail to iris-go@outlook.com. All security vulnerabilities will be promptly addressed.
📝 License
This project is licensed under the BSD 3-clause license, just like the Go project itself.
The project name "Iris" was inspired by the Greek mythology.