Iris è un framework per applicazioni web Golang veloce, semplice ma completo e altamente efficiente.
Fornisce una base espressiva e facile da usare per il tuo prossimo sito web o interfaccia dell'applicazione.
Caratteristiche di Iris
- HTTP/2 (push, anche dati incorporati)
- Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
- Versioning delle API
- Model-View-Controller
- Websockets
- gRPC
- HTTPS automatico
- Supporto integrato di ngrok per mettere la tua applicazione online nel modo più veloce possibile
- Router unico con parametri del percorso dinamico, supportando tipi standard come :uuid, :string, :int e creazione di router personalizzati
- Compressione
- Motori di visualizzazione (HTML, Django, Handlebars, Pug/Jade, ecc.)
- Crea il tuo server dei file e ospita il tuo server WebDAV
- Caching
- Localizzazione (i18n, mappa del sito)
- Sessioni
- Risposte ricche (HTML, testo, Markdown, XML, YAML, binario, JSON, JSONP, Protocol Buffers, MessagePack, negoziazione del contenuto, stream, eventi inviati dal server, ecc.)
- Compressione delle risposte (gzip, deflate, brotli, snappy, s2)
- Richieste ricche (binding della query URL, intestazioni, moduli, testo, XML, YAML, binario, JSON, convalida, Protocol Buffers, MessagePack, ecc.)
- Iniezione delle dipendenze (MVC, gestori, router API)
- Suite di test
Demo
package main
// Importa il package
import "github.com/kataras/iris/v12"
func main() {
// Definire l'istanza di iris
app := iris.New()
// Usa il middleware di compressione gzip
app.Use(iris.Compression)
// Configurazione del router
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Ciao <strong>%s</strong>!", "Mondo")
})
// Ascolta sulla porta
app.Listen(":8080")
}
Test delle prestazioni
Invia 200.000 richieste con parametri dinamici come interi, inviando JSON come corpo della richiesta e ricevendo JSON come risposta.
Framework | Linguaggio di sviluppo | Richieste al secondo | Latenza | Throughput | Tempo di completamento |
---|---|---|---|---|---|
Iris | Go | 238.954 | 521,69µs | 64,15MB | 0,84s |
Gin | Go | 229.665 | 541,96µs | 62,86MB | 0,87s |
Chi | Go | 228.072 | 545,78µs | 62,61MB | 0,88s |
Echo | Go | 224.491 | 553,84µs | 61,70MB | 0,89s |
Martini | Go | 198.166 | 627,46µs | 54,47MB | 1,01s |
Kestrel | C# | 163.486 | 766,90µs | 47,42MB | 1,23s |
Buffalo | Go | 102.478 | 1,22ms | 28,14MB | 1,95s |
Koa | Javascript | 48.425 | 2,56ms | 15,39MB | 4,14s |
Express | Javascript | 23.622 | 5,25ms | 9,04MB | 8,41s |