iris icon indicating copy to clipboard operation
iris copied to clipboard

感谢中国开发者 - https://bit.ly/謝謝 | The fastest community-driven web framework for Go. Webassembly, Automatic HTTPS with Public Domain, MVC, Sessions, Caching, Versioning API, Problem API, Websocke...

Iris Web Framework

build status view examples chat donate

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.

Benchmarks: Jul 18, 2020 at 10:46am (UTC)

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!

👑 Supporters

With your help, we can improve Open Source web development for everyone!

github getsentry lensesio thepunterbot jnelle PaddyFrenchman beytullahakyuz gloudx iuliancarnaru lemuelroberto linuxluigi draFWM gf3 trading-peter AlbinoGeek basilarchia sumjoe simpleittools xiaozhuai Remydeme celsosz linxcoder TechMaster janwebdev altafino jakoubek alekperos hengestone thomasfr CetinBasoz International Juanses ansrivas ekobayong lexrus li3p madhu72 se77en vincent-li njeff3 ixalender mubariz-ahmed Cesar DavidShaw sascha11110 clichi2002 derReineke Sirisap22 primadi th31nitiate stgrosshh rodrigoghm Didainius DmarshalTU IwateKyle Little-YangYang Major2828 MatejLach agoncecelia amritpal042 boomhut coderperu hobysmith clacroix cshum dtrifonov geordee guanting112 iantuan ichenhe icibiri jfloresremar jingtianfeng kilarusravankumar leandrobraga lfbos lpintes macropas marcmmx mark2b miguel-devs mihado mmckeen75 narven odas0r olaf-lexemo pr123 rsousacode sankethpb saz59 shadowfiga siriushaha skurtz97 srinivasganti syrm tuhao1020 wahyuief xvalen xytis ElNovi IpastorSan KKP4 Lernakow ernestocolombo francisstephan pixelheresy rcapraro soiestad thanasolykos ukitzmann DanielKirkwood aprinslo1 colinf kyoukhana spazzymoto victorgrey ArishSultan EliYip ehayun kukaki oshirokazuhide t6tg AnatolyUA AwsIT BlackHole1 FernandoLangOFC Hongjian0619 JoeD Jude-X Kartoffelbot KevinZhouRafael KrishManohar Laotanling pitexplore Longf99999 Lyansun MihaiPopescu1985 NA Neulhan NguyenPhuoc Oka00 RainerGevers Ramblestsad SamuelNeves Scorpio69t Serissa4000 TianJIANG Ubun1 XinYoungCN YukinaMochizuki a112121788 acdias aeonsthorn agent3bood alessandromarotta algoflows angelaahhu anhxuanpham annieruci antoniejiao artman328 b2cbd baoch254 bastengao bjoroen blackHoleNgc1277 bunnycodego carlos-enginner chrisliang12 civicwar cnzhangquan danlanxiaohei dfaugusto dkzhang dloprodu donam-givita dph0899 ec0629 edwindna2 ekofedriyanto fenriz07 ffelipelimao frenchmajesty gastropulgite geGao123 globalflea gnosthi goten002 guanzi008 hdezoscar93 hieungm hieunmg homerious hzxd iysaleh jackptoke jeremiahyan joelywz kana99 kattaprasanth keeio keymanye khasanovrs kkdaypenny knavels kohakuhubo korowiov kostasvk lafayetteDan leki75 liheyuan lingyingtan lipatti maikelcoke marek-kuticka marman-hp mattbowen maxgozou mizzlespot mnievesco mo3lyana motogo mtrense mukunhao mulyawansentosa nasoma ngseiyu nikharsaxena nronzel onlysumitg ozfive paulxu21 pesquive phil535 pitt134 pookiepats qiepeipei qiuzhanghua rapita rbondi relaera remopavithran rfunix rhernandez-itemsoft opusmagna b4zz4r bobmcallan fangli galois-tnp geoshan juanxme nguyentamvinhlong risallaw robivictor rxrw saleebm sbenimeli sebyno seun-otosho solohiroshi su1gen sukiejosh svirmi thiennguyen93 unixedia vadgun valsorym vguhesan vpiduri vrocadev vuhoanglam walter-wang wixregiga yesudeep ymonk yonson2 zhenggangpku SergeShin - BelmonduS martinjanda martinlindhe mdamschen netbaalzovf oliverjosefzimmer talebisinan valkuere lfaynman ArturWierzbicki Supersherm5 aaxx crashCoder derekslenk dochoaj evillgenius75 gog200921 mauricedcastro mwiater sj671 statik supersherm5 thejones CSRaghunandan GeorgeFourikis L-M-Sherlock claudemuller edsongley vcruzato evan grassshrimp hazmi-e205 jtgoral ky2s lauweliam letmestudy mblandr midhubalan ndimorle rosales-stephanie shyyawn wangbl11 wofka72 xsokev oleang michalsz michaelsmanley Curtman SridarDhandapani tejzpr theantichris tuxaanand raphael-brand willypuzzle HieuLsw carlosmoran092 yangxianglong

📖 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 # or @v12.2.7
Install on existing project
$ cd myapp
$ go get github.com/kataras/iris/v12@latest

Run

$ go mod tidy -compat=1.20 # -compat="1.20" for windows.
$ 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?

Book cover

follow author on twitter

follow Iris web framework on twitter

follow Iris web framework on facebook

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 [email protected]. 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.