Repolode
valyala

valyala/fasthttp

Implementación rápida de servidor y cliente HTTP para Go, diseñada para cargas de alto rendimiento y pocas asignaciones de memoria.

Estrellas
23,489
Forks
1,883
Issues abiertos
66
Último commit
anteayer

¿Qué es?

fasthttp es una implementación de HTTP para Go que ofrece API de servidor y cliente. Está diseñada para casos con un volumen muy alto de solicitudes, reutiliza objetos de solicitud y respuesta y evita asignaciones en las rutas críticas. Los benchmarks del README la comparan con net/http e indican que, en las configuraciones evaluadas, el servidor puede ser hasta unas 6 veces más rápido y el cliente, hasta unas 4 veces más rápido.

La API es intencionalmente distinta de net/http. Los handlers reciben un único argumento *RequestCtx y no hay ServeMux, por lo que el enrutamiento se delega a routers o frameworks de terceros, como Fiber. Se pueden escribir las cabeceras y el cuerpo de la respuesta en cualquier orden antes de que el handler termine. Para migrar código existente hay que adaptar los handlers y evitar referencias al contexto después de que el handler termine.

El README del proyecto recomienda net/http para la mayoría de las aplicaciones, porque es más fácil de usar, maneja más casos especiales de HTTP y admite HTTP/2. fasthttp es más adecuado para servicios que procesan miles de solicitudes pequeñas o medianas por segundo y necesitan una latencia baja y constante.

Funciones clave

  • 01API de servidor y cliente con reutilización de objetos de solicitud y respuesta para reducir las asignaciones de memoria.
  • 02Los handlers reciben un único RequestCtx, y las cabeceras y el cuerpo se pueden escribir en cualquier orden.
  • 03Admite listeners reuseport y patrones de despliegue por núcleo para escalar en sistemas multinúcleo.
  • 04Incluye utilidades para convertir handlers de net/http, servir archivos y gestionar timeouts.
  • 05Según las preguntas frecuentes del README, requiere Go 1.26 o una versión posterior.

Casos de uso

  • Gateways de API o proxies de alto rendimiento que gestionan grandes volúmenes de solicitudes pequeñas.
  • Servicios de Go sensibles a la latencia en los que la presión por asignaciones de memoria es un cuello de botella medido.
  • Servicios de edge que atienden muchas conexiones keep-alive desde un único servidor.

Inicio rápido

  1. 1

    Instala la biblioteca con Go

    go get -u github.com/valyala/fasthttp

Antes de usarlo

  • fasthttp no sustituye directamente a net/http y su API es diferente.
  • El README indica que net/http suele ser la mejor opción, salvo que necesites un rendimiento muy alto.

Temas

Preguntas frecuentes

¿Qué es fasthttp?
Implementación rápida de servidor y cliente HTTP para Go, diseñada para cargas de alto rendimiento y pocas asignaciones de memoria. fasthttp es una implementación de HTTP para Go que ofrece API de servidor y cliente. Está diseñada para casos con un volumen muy alto de solicitudes, reutiliza objetos de solicitud y respuesta y evita asignaciones en las rutas críticas. Los benchmarks del README la comparan con net/http e indican que, en las configuraciones evaluadas, el servidor puede ser hasta unas 6 veces más rápido y el cliente, hasta unas 4 veces más rápido.
¿fasthttp es gratuito? ¿Qué licencia tiene?
fasthttp es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿fasthttp sigue mantenido?
Mantenimiento activo. El último commit de fasthttp fue el 21 oct 2026.
¿Para qué puedo usar fasthttp?
Gateways de API o proxies de alto rendimiento que gestionan grandes volúmenes de solicitudes pequeñas. Servicios de Go sensibles a la latencia en los que la presión por asignaciones de memoria es un cuello de botella medido. Servicios de edge que atienden muchas conexiones keep-alive desde un único servidor.
¿Cómo se instala fasthttp?
Instala la biblioteca con Go: go get -u github.com/valyala/fasthttp
¿Dónde consigo fasthttp?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/valyala/fasthttp

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados