Servidor web de alto desempenho, proxy reverso, balanceador de carga, API gateway e cache de conteúdo escrito em C.
yhirose/cpp-httplib
Uma biblioteca C++11 em um único header para criar servidores e clientes HTTP/HTTPS com I/O de socket bloqueante.
- Estrelas
- 16,923
- Forks
- 2,777
- Issues abertas
- 0
- Último commit
- há 17 horas
O que é?
cpp-httplib é uma biblioteca multiplataforma C++11 que oferece um servidor e um cliente HTTP/HTTPS. Ela vem em um único arquivo de header, httplib.h, então basta incluir esse arquivo no projeto. A biblioteca usa I/O de socket bloqueante e oferece suporte apenas a HTTP/1.1; HTTP/2 e HTTP/3 não são implementados.
A biblioteca oferece roteamento com parâmetros de caminho e expressões regulares, serviço de arquivos estáticos com mapeamento MIME, formulários multipart e upload de arquivos, transferência em blocos e provedores de conteúdo em streaming, conexões keep-alive e hooks no estilo middleware, como handlers pré e pós-roteamento e de exceções. Server-Sent Events e WebSocket são documentados como recursos adicionais.
O TLS está disponível via OpenSSL (3.0 ou posterior), Mbed TLS ou wolfSSL, selecionados por uma define de compilação. A biblioteca também inclui controles de verificação de certificados, TLS mútuo e integração com o repositório de certificados do sistema no macOS e no Windows.
Recursos principais
- 01Inclusão de um único header, sem dependências de build para uso básico de HTTP
- 02Servidor e cliente HTTP em uma única biblioteca
- 03HTTPS via OpenSSL, Mbed TLS ou wolfSSL
- 04Roteamento com parâmetros de caminho e expressões regulares
- 05Serviço de arquivos estáticos, uploads multipart e respostas em blocos ou por streaming
- 06TLS mútuo e controles de verificação de certificados
Casos de uso
- Adicionar um endpoint HTTP embarcado e leve a uma aplicação C++ sem trazer um framework grande
- Criar um cliente C++ que consome APIs REST via HTTPS
- Servir arquivos estáticos ou APIs web simples a partir de uma ferramenta em C++
- Prototipar um serviço HTTP local em um projeto C++ com configuração mínima
Início rápido
- 1
Baixe o arquivo httplib.h do repositório
- 2
Inclua httplib.h no seu código C++ e compile um servidor ou cliente como mostrado nos exemplos
Antes de usar
- Usa E/S de soquete bloqueante, portanto não é adequado para projetos não bloqueantes.
- Suporta apenas HTTP/1.1; HTTP/2 e HTTP/3 não estão implementados.
- Plataformas de 32 bits não são suportadas e não passam por revisão de segurança.
Tópicos
Perguntas frequentes
- O que é cpp-httplib?
- Uma biblioteca C++11 em um único header para criar servidores e clientes HTTP/HTTPS com I/O de socket bloqueante. cpp-httplib é uma biblioteca multiplataforma C++11 que oferece um servidor e um cliente HTTP/HTTPS. Ela vem em um único arquivo de header, httplib.h, então basta incluir esse arquivo no projeto. A biblioteca usa I/O de socket bloqueante e oferece suporte apenas a HTTP/1.1; HTTP/2 e HTTP/3 não são implementados.
- cpp-httplib é gratuito? Qual é a licença?
- cpp-httplib é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- cpp-httplib ainda é mantido?
- Manutenção ativa. O último commit de cpp-httplib foi em 22 de out. de 2026.
- Para que posso usar cpp-httplib?
- Adicionar um endpoint HTTP embarcado e leve a uma aplicação C++ sem trazer um framework grande Criar um cliente C++ que consome APIs REST via HTTPS Servir arquivos estáticos ou APIs web simples a partir de uma ferramenta em C++ Prototipar um serviço HTTP local em um projeto C++ com configuração mínima
- Como instalar cpp-httplib?
- Baixe o arquivo httplib.h do repositório Inclua httplib.h no seu código C++ e compile um servidor ou cliente como mostrado nos exemplos
- Onde consigo cpp-httplib?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/yhirose/cpp-httplib
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Caddy é um servidor web extensível, escrito em Go, que atende HTTP/1.1, HTTP/2 e HTTP/3 e habilita HTTPS automaticamente por padrão.
Implementação rápida de servidor e cliente HTTP para Go, projetada para alto throughput e baixo overhead de alocação.
Biblioteca C++ header-only para parsing rápido e exato de valores float, double e inteiros a partir de strings, com uma implementação substituta de from_chars.
Um microframework C++ rápido, no estilo do Flask, para criar serviços web HTTP e WebSocket, distribuído como header-only e fácil de usar.
Um framework web minimalista e de alto desempenho para Go, baseado no pacote padrão net/http.