Repolode
valyala

valyala/fasthttp

Implementação rápida de servidor e cliente HTTP para Go, projetada para alto throughput e baixo overhead de alocação.

Estrelas
23,489
Forks
1,883
Issues abertas
66
Último commit
anteontem

O que é?

fasthttp é uma implementação de HTTP para Go que oferece APIs de servidor e cliente. Foi criada para cenários extremos, com volumes muito altos de requisições, reutilizando objetos de requisição e resposta e evitando alocações nos caminhos mais críticos. Os benchmarks do README comparam o projeto com net/http e mostram, nas configurações avaliadas, um servidor até cerca de 6 vezes mais rápido e um cliente até cerca de 4 vezes mais rápido.

A API é intencionalmente diferente da net/http. Os handlers recebem um único argumento *RequestCtx, e não há ServeMux; por isso, o roteamento fica a cargo de routers ou frameworks de terceiros, como o Fiber. Os headers e o corpo da resposta podem ser escritos em qualquer ordem antes do retorno do handler. Para migrar código existente, é preciso adaptar os handlers e evitar referências ao contexto depois que um handler retorna.

O README do projeto recomenda net/http para a maioria das aplicações, por ser mais fácil de usar, lidar com mais casos extremos de HTTP e oferecer suporte a HTTP/2. fasthttp é mais indicado para serviços que processam milhares de requisições pequenas ou médias por segundo e precisam manter uma latência baixa e consistente.

Recursos principais

  • 01APIs de servidor e cliente que reutilizam objetos de requisição e resposta para reduzir alocações.
  • 02Os handlers recebem um único RequestCtx, e os headers e o corpo podem ser escritos em qualquer ordem.
  • 03Oferece suporte a listeners reuseport e a padrões de implantação por core para escalar em múltiplos cores.
  • 04Inclui helpers para converter handlers de net/http, servir arquivos e lidar com timeouts.
  • 05Exige Go 1.26 ou mais recente, segundo o FAQ do README.

Casos de uso

  • Gateways de API ou proxies de alto throughput que processam grandes volumes de requisições pequenas.
  • Serviços em Go sensíveis à latência, nos quais a pressão por alocações é um gargalo comprovado por medições.
  • Serviços de borda que atendem muitas conexões keep-alive em um único servidor.

Início rápido

  1. 1

    Instale a biblioteca com Go

    go get -u github.com/valyala/fasthttp

Antes de usar

  • fasthttp não substitui diretamente o net/http, e sua API é diferente.
  • O README diz que o net/http geralmente é a melhor opção, a menos que você precise de um throughput muito alto.

Tópicos

Perguntas frequentes

O que é fasthttp?
Implementação rápida de servidor e cliente HTTP para Go, projetada para alto throughput e baixo overhead de alocação. fasthttp é uma implementação de HTTP para Go que oferece APIs de servidor e cliente. Foi criada para cenários extremos, com volumes muito altos de requisições, reutilizando objetos de requisição e resposta e evitando alocações nos caminhos mais críticos. Os benchmarks do README comparam o projeto com net/http e mostram, nas configurações avaliadas, um servidor até cerca de 6 vezes mais rápido e um cliente até cerca de 4 vezes mais rápido.
fasthttp é gratuito? Qual é a licença?
fasthttp é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
fasthttp ainda é mantido?
Manutenção ativa. O último commit de fasthttp foi em 21 de out. de 2026.
Para que posso usar fasthttp?
Gateways de API ou proxies de alto throughput que processam grandes volumes de requisições pequenas. Serviços em Go sensíveis à latência, nos quais a pressão por alocações é um gargalo comprovado por medições. Serviços de borda que atendem muitas conexões keep-alive em um único servidor.
Como instalar fasthttp?
Instale a biblioteca com Go: go get -u github.com/valyala/fasthttp
Onde consigo fasthttp?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/valyala/fasthttp

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados