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 |