Repolode
yhirose

yhirose/cpp-httplib

Biblioteca de C++11 en un solo archivo de cabecera para crear servidores y clientes HTTP/HTTPS con E/S de sockets bloqueante.

Estrellas
16,923
Forks
2,777
Issues abiertos
0
Último commit
hace 17 horas

¿Qué es?

cpp-httplib es una biblioteca multiplataforma de C++11 que ofrece un servidor y un cliente HTTP/HTTPS. Se distribuye en un único archivo de cabecera, httplib.h, así que para añadirla a un proyecto solo hay que incluir ese archivo. Usa E/S de sockets bloqueante y solo admite HTTP/1.1; no implementa HTTP/2 ni HTTP/3.

La biblioteca incluye enrutamiento con parámetros de ruta y expresiones regulares, publicación de archivos estáticos con asignación de tipos MIME, formularios multipart y carga de archivos, transferencia fragmentada y proveedores de contenido en streaming, conexiones keep-alive y hooks de estilo middleware, como controladores previos y posteriores al enrutamiento y controladores de excepciones. La documentación presenta Server-Sent Events y WebSocket como funciones adicionales.

TLS está disponible mediante OpenSSL (3.0 o posterior), Mbed TLS o wolfSSL, seleccionados con una definición en tiempo de compilación. También incluye controles de verificación de certificados, TLS mutuo y, en macOS y Windows, integración con el almacén de certificados del sistema.

Funciones clave

  • 01Inclusión desde un único archivo de cabecera, sin dependencias de compilación para el uso básico de HTTP
  • 02Servidor y cliente HTTP en una sola biblioteca
  • 03HTTPS mediante OpenSSL, Mbed TLS o wolfSSL
  • 04Enrutamiento con parámetros de ruta y expresiones regulares
  • 05Publicación de archivos estáticos, cargas multipart y respuestas fragmentadas o en streaming
  • 06TLS mutuo y controles de verificación de certificados

Casos de uso

  • Añadir un endpoint HTTP integrado y ligero a una aplicación C++ sin incorporar un framework grande
  • Crear un cliente C++ que consuma API REST a través de HTTPS
  • Publicar archivos estáticos o API web sencillas desde una herramienta C++
  • Crear un prototipo de servicio HTTP local en un proyecto C++ con una configuración mínima

Inicio rápido

  1. 1

    Descarga el archivo httplib.h del repositorio

  2. 2

    Incluye httplib.h en tu código C++ y compila un servidor o cliente como se muestra en los ejemplos

Antes de usarlo

  • Utiliza E/S de sockets bloqueante, por lo que no es adecuado para diseños no bloqueantes.
  • Solo admite HTTP/1.1; HTTP/2 y HTTP/3 no están implementados.
  • No admite plataformas de 32 bits y no se somete a revisiones de seguridad.

Temas

Preguntas frecuentes

¿Qué es cpp-httplib?
Biblioteca de C++11 en un solo archivo de cabecera para crear servidores y clientes HTTP/HTTPS con E/S de sockets bloqueante. cpp-httplib es una biblioteca multiplataforma de C++11 que ofrece un servidor y un cliente HTTP/HTTPS. Se distribuye en un único archivo de cabecera, httplib.h, así que para añadirla a un proyecto solo hay que incluir ese archivo. Usa E/S de sockets bloqueante y solo admite HTTP/1.1; no implementa HTTP/2 ni HTTP/3.
¿cpp-httplib es gratuito? ¿Qué licencia tiene?
cpp-httplib es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿cpp-httplib sigue mantenido?
Mantenimiento activo. El último commit de cpp-httplib fue el 22 oct 2026.
¿Para qué puedo usar cpp-httplib?
Añadir un endpoint HTTP integrado y ligero a una aplicación C++ sin incorporar un framework grande Crear un cliente C++ que consuma API REST a través de HTTPS Publicar archivos estáticos o API web sencillas desde una herramienta C++ Crear un prototipo de servicio HTTP local en un proyecto C++ con una configuración mínima
¿Cómo se instala cpp-httplib?
Descarga el archivo httplib.h del repositorio Incluye httplib.h en tu código C++ y compila un servidor o cliente como se muestra en los ejemplos
¿Dónde consigo cpp-httplib?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/yhirose/cpp-httplib

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

Proyectos relacionados