Iris ist ein schnelles, einfaches und dennoch voll ausgestattetes und sehr effizientes Golang-Webanwendungs-Framework.

Es bietet eine ausdrucksstarke und benutzerfreundliche Grundlage für Ihre nächste Website oder Ihre Anwendungs-Schnittstelle.

Iris Funktionen

  • HTTP/2 (Push, sogar eingebettete Daten)
  • Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
  • API-Versionierung
  • Model-View-Controller
  • Websockets
  • gRPC
  • Automatisches HTTPS
  • Eingebaute ngrok-Unterstützung, um Ihre Anwendung so schnell wie möglich online zu bringen
  • Einzigartiger Router mit dynamischen Pfadparametern, der Standardtypen wie :uuid, :string, :int und die Erstellung benutzerdefinierter Router unterstützt
  • Komprimierung
  • Ansichtsmotoren (HTML, Django, Handlebars, Pug/Jade usw.)
  • Erstellen Sie Ihren eigenen Dateiserver und hosten Sie Ihren eigenen WebDAV-Server
  • Zwischenspeicherung
  • Lokalisierung (i18n, Sitemap)
  • Sitzungen
  • Umfangreiche Antworten (HTML, Text, Markdown, XML, YAML, binär, JSON, JSONP, Protokollpuffer, MessagePack, Inhaltsverhandlung, Stream, Servergesendete Ereignisse usw.)
  • Antwortkomprimierung (gzip, deflate, brotli, snappy, s2)
  • Umfangreiche Anforderungen (Binden von URL-Abfragen, Headern, Formularen, Text, XML, YAML, binär, JSON, Validierung, Protokollpuffer, MessagePack usw.)
  • Abhängigkeitsinjektion (MVC, Handler, API-Router)
  • Test Suite

Demo

package main

// Paket importieren
import "github.com/kataras/iris/v12"

func main() {
  // Iris Instanz definieren
  app := iris.New()
  // Gzip-Komprimierungsmiddleware verwenden
  app.Use(iris.Compression)

  // Router einrichten
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("Hallo <strong>%s</strong>!", "Welt")
  })

  // Auf Port hören
  app.Listen(":8080")
}

Leistungstests

Senden von 200.000 Anfragen mit dynamischen Parametern als Ganzzahlen, Senden von JSON als Anforderungskörper und Empfangen von JSON als Antwort.

Framework Entwicklungssprache Anfragen pro Sekunde Latenz Durchsatz Abschlusszeit
Iris Go 238,954 521,69 µs 64,15 MB 0,84 s
Gin Go 229,665 541,96 µs 62,86 MB 0,87 s
Chi Go 228,072 545,78 µs 62,61 MB 0,88 s
Echo Go 224,491 553,84 µs 61,70 MB 0,89 s
Martini Go 198,166 627,46 µs 54,47 MB 1,01 s
Kestrel C# 163,486 766,90 µs 47,42 MB 1,23 s
Buffalo Go 102,478 1,22 ms 28,14 MB 1,95 s
Koa Javascript 48,425 2,56 ms 15,39 MB 4,14 s
Express Javascript 23,622 5,25 ms 9,04 MB 8,41 s