Iris es un marco de aplicación web en Golang rápido, simple pero totalmente funcional y altamente eficiente.

Proporciona una base expresiva y fácil de usar para su próximo sitio web o interfaz de aplicación.

Características de Iris

  • HTTP/2 (push, incluso datos integrados)
  • Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
  • Versionado de API
  • Modelo-Vista-Controlador
  • Websockets
  • gRPC
  • HTTPS automático
  • Soporte integrado ngrok para poner su aplicación en línea de la manera más rápida posible
  • Router único con parámetros de ruta dinámica, que admiten tipos estándar como :uuid, :string, :int, y creación de router personalizado
  • Compresión
  • Motores de vista (HTML, Django, Handlebars, Pug/Jade, etc.)
  • Cree su propio servidor de archivos y aloje su propio servidor WebDAV
  • Caché
  • Localización (i18n, sitemap)
  • Sesiones
  • Respuestas enriquecidas (HTML, texto, Markdown, XML, YAML, binario, JSON, JSONP, Protocol Buffers, MessagePack, negociación de contenido, transmisión, eventos enviados por el servidor, etc.)
  • Compresión de respuesta (gzip, deflate, brotli, snappy, s2)
  • Solicitudes enriquecidas (vincular consulta de URL, encabezados, formularios, texto, XML, YAML, binario, JSON, validación, Protocol Buffers, MessagePack, etc.)
  • Inyección de dependencias (MVC, controladores, enrutadores de API)
  • Suite de pruebas

Demo

package main

// Importar paquete
import "github.com/kataras/iris/v12"

func main() {
  // Definir instancia de iris
  app := iris.New()
  // Usar middleware de compresión gzip
  app.Use(iris.Compression)

  // Configuración del enrutador
  app.Get("/", func(ctx iris.Context) {
    ctx.HTML("¡Hola <strong>%s</strong>!", "Mundo")
  })

  // Escuchar en el puerto
  app.Listen(":8080")
}

Pruebas de rendimiento

Enviar 200,000 solicitudes con parámetros dinámicos como enteros, enviar JSON como cuerpo de la solicitud y recibir JSON como respuesta.

Marco de trabajo Lenguaje de desarrollo Solicitudes por segundo Latencia Rendimiento Tiempo de finalización
Iris Go 238,954 521.69us 64.15MB 0.84s
Gin Go 229,665 541.96us 62.86MB 0.87s
Chi Go 228,072 545.78us 62.61MB 0.88s
Echo Go 224,491 553.84us 61.70MB 0.89s
Martini Go 198,166 627.46us 54.47MB 1.01s
Kestrel C# 163,486 766.90us 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