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 |