Iris est un framework d'application web Golang rapide, simple mais complet et hautement efficace.
Il offre une base expressive et facile à utiliser pour votre prochain site web ou interface d'application.
Fonctionnalités d'Iris
- HTTP/2 (push, même données incorporées)
- Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
- Versioning d'API
- Modèle-Vue-Contrôleur
- Websockets
- gRPC
- HTTPS automatique
- Prise en charge intégrée de ngrok pour mettre votre application en ligne de la manière la plus rapide possible
- Routeur unique avec des paramètres de chemin dynamiques, prenant en charge les types standard tels que :uuid, :string, :int, et création de routeur personnalisé
- Compression
- Moteurs de vue (HTML, Django, Handlebars, Pug/Jade, etc.)
- Créer votre propre serveur de fichiers et héberger votre propre serveur WebDAV
- Mise en cache
- Localisation (i18n, sitemap)
- Sessions
- Réponses riches (HTML, texte, Markdown, XML, YAML, binaire, JSON, JSONP, Protocol Buffers, MessagePack, négociation de contenu, stream, événements envoyés par le serveur, etc.)
- Compression de réponses (gzip, deflate, brotli, snappy, s2)
- Requêtes riches (liaison de requête URL, en-têtes, formulaires, texte, XML, YAML, binaire, JSON, validation, Protocol Buffers, MessagePack, etc.)
- Injection de dépendance (MVC, gestionnaires, routeurs API)
- Suite de tests
Démo
package main
// Importer le package
import "github.com/kataras/iris/v12"
func main() {
// Définir l'instance d'Iris
app := iris.New()
// Utiliser le middleware de compression gzip
app.Use(iris.Compression)
// Configuration du routeur
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Bonjour <strong>%s</strong>!", "Monde")
})
// Écouter sur le port
app.Listen(":8080")
}
Test de performance
Envoyer 200 000 requêtes avec des paramètres dynamiques en tant qu'entiers, envoyer JSON comme corps de la requête et recevoir JSON comme réponse.
Framework | Langage de développement | Requêtes par seconde | Latence | Débit | Temps d'achèvement |
---|---|---|---|---|---|
Iris | Go | 238 954 | 521,69 µs | 64,15 Mo | 0,84 s |
Gin | Go | 229 665 | 541,96 µs | 62,86 Mo | 0,87 s |
Chi | Go | 228 072 | 545,78 µs | 62,61 Mo | 0,88 s |
Echo | Go | 224 491 | 553,84 µs | 61,70 Mo | 0,89 s |
Martini | Go | 198 166 | 627,46 µs | 54,47 Mo | 1,01 s |
Kestrel | C# | 163 486 | 766,90 µs | 47,42 Mo | 1,23 s |
Buffalo | Go | 102 478 | 1,22 ms | 28,14 Mo | 1,95 s |
Koa | Javascript | 48 425 | 2,56 ms | 15,39 Mo | 4,14 s |
Express | Javascript | 23 622 | 5,25 ms | 9,04 Mo | 8,41 s |