Skip to content

Comparação

Esta página ajuda você a entender onde o Kori se encaixa em relação às ferramentas que você já pode conhecer.

Comparação de features

Featurenet/httpChiKori
Roteamento
Middleware
Middleware por rota
Handlers com retorno de erro
Binding de requisição (JSON, query, path, header, form)
Validação automática de entrada
Respostas de erro estruturadas
Helpers de resposta
Geração de spec OpenAPI 3.1(via kori/openapi)
Suporte a SSE

O Chi já cuida de roteamento e middleware. O Kori adiciona a camada acima: binding, validação, tratamento de erros e escrita de respostas.

Kori vs. frameworks full-stack

Muitos frameworks HTTP em Go substituem o net/http por completo. O Kori não.

SoluçãoSubstitui net/httpConstruído sobre Chi
GinSimNão
EchoSimNão
FiberSimNão
ChiNão
KoriNãoSim

Gin, Echo e Fiber fornecem seus próprios tipos Context, suas próprias assinaturas de handler e seus próprios ecossistemas de middleware. Migrar para eles significa reescrever handlers e migrar middlewares.

Handlers Kori são handlers net/http padrão com um valor de retorno a mais. Qualquer middleware, test helper ou ferramenta que funciona com http.Handler continua funcionando sem alterações.

Quando escolher o Kori

O Kori é uma boa escolha se você:

  • Já usa Chi e quer reduzir o boilerplate dos handlers
  • Quer handlers com retorno de erro sem adotar um framework completo
  • Precisa de binding e validação de requisição sem um tipo de contexto customizado
  • Quer geração de spec OpenAPI que vive ao lado das suas rotas
  • Prefere manter compatibilidade com net/http em toda a stack

O Kori pode não ser a escolha certa se você:

  • Precisa de recursos como templating embutido, gerenciamento de sessão ou suporte a WebSocket (use middlewares Chi ou outros pacotes diretamente)
  • Está começando do zero e prefere um framework full-stack opinativo
  • Trabalha em uma codebase onde Gin, Echo ou Fiber já é o padrão

Se você já gosta do Chi, o Kori foi feito para aprimorá-lo — não para substituí-lo.

O Chi cuida do roteamento. O Kori cuida do resto. Ambos ficam fora do caminho do net/http.

Você pode adotar o Kori de forma incremental — um handler por vez — sem migrar toda a aplicação.