Iris é um framework de aplicação web Golang rápido, simples, porém totalmente funcional e altamente eficiente.

Ele fornece uma base expressiva e fácil de usar para o seu próximo site ou interface de aplicativo.

Recursos do Iris

  • HTTP/2 (push, até mesmo dados incorporados)
  • Middleware (Accesslog, Basicauth, CORS, gRPC, Anti-Bot hCaptcha, JWT, MethodOverride, ModRevision, Monitor, PPROF, Ratelimit, Anti-Bot reCaptcha, Recovery, RequestID, Rewrite)
  • Versionamento de API
  • Model-View-Controller
  • Websockets
  • gRPC
  • HTTPS automático
  • Suporte integrado ngrok para colocar sua aplicação online da forma mais rápida possível
  • Roteador exclusivo com parâmetros de caminho dinâmico, suportando tipos padrão como :uuid, :string, :int, e criação de roteador personalizado
  • Compressão
  • Motores de visualização (HTML, Django, Handlebars, Pug/Jade, etc.)
  • Crie seu próprio servidor de arquivos e hospede seu próprio servidor WebDAV
  • Caching
  • Localização (i18n, sitemap)
  • Sessões
  • Respostas ricas (HTML, texto, Markdown, XML, YAML, binário, JSON, JSONP, Protocol Buffers, MessagePack, negociação de conteúdo, transmissão, eventos enviados pelo servidor, etc.)
  • Compressão de resposta (gzip, deflate, brotli, snappy, s2)
  • Solicitações ricas (vincular consulta de URL, cabeçalhos, formulários, texto, XML, YAML, binário, JSON, validação, Protocol Buffers, MessagePack, etc.)
  • Injeção de dependência (MVC, manipuladores, roteadores de API)
  • Suite de testes

Demonstração

pacote principal

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

func main() {
  // Definir instância de iris
  app := iris.New()
  // Usar middleware de compressão gzip
  app.Use(iris.Compressão)

  // Configuração do roteador
  app.Get("/", func(ctx iris.Contexto) {
    ctx.HTML("Olá <strong>%s</strong>!", "Mundo")
  })

  // Ouvir na porta
  app.Listen(":8080")
}

Teste de Desempenho

Envie 200.000 solicitações com parâmetros dinâmicos como inteiros, enviando JSON no corpo da solicitação e recebendo JSON como resposta.

Framework Linguagem de Desenvolvimento Solicitações por Segundo Latência Taxa de Transferência Tempo de Conclusão
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