Uma biblioteca C++11 em um único header para criar servidores e clientes HTTP/HTTPS com I/O de socket bloqueante.
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
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
Uma biblioteca HTTP simples e elegante para Python, com suporte a sessões, cookies, autenticação e JSON em requisições HTTP/1.1.
Servidor web de alto desempenho, proxy reverso, balanceador de carga, API gateway e cache de conteúdo escrito em C.
Framework web HTTP de alto desempenho para Go, com uma API semelhante à do Martini, feito para REST APIs, aplicações web e microsserviços.
Cliente HTTP com segurança de tipos para Android e Java que transforma métodos de interface anotados em chamadas de rede.
Ecossistema open source para desenvolvimento de APIs, com envio de requisições REST, GraphQL, WebSocket, SSE, Socket.IO e MQTT em apps web, desktop e CLI.