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