Bibliotecas de classes C++ multiplataforma para criar aplicações centradas em rede, com suporte a HTTP, networking, bancos de dados, XML/JSON e logging.
idealvin/coost
Biblioteca base leve em C++ que reúne corrotinas no estilo goroutine, networking, logging, parsing de flags, JSON, testes unitários e benchmarks.
- Estrelas
- 4,225
- Forks
- 593
- Issues abertas
- 0
- Último commit
- há 27 dias
O que é?
coost é uma biblioteca base em C++ que reúne em uma única dependência os componentes de infraestrutura normalmente necessários para um serviço em C++. É compatível com Linux, macOS, Windows e FreeBSD, além de CPUs x86, x64, ARM e ARM64.
A biblioteca oferece corrotinas no estilo Go que, por padrão, são escalonadas entre threads e usam stacks compartilhadas para reduzir o consumo de memória. Sobre elas, há uma API de sockets baseada em corrotinas, wrappers para servidor e cliente TCP e um framework RPC simples baseado em JSON. Outros componentes incluem um logger que imprime stack traces em caso de crash, um parser de flags para argumentos de linha de comando e arquivos de configuração, um tipo JSON com interface fluente, um framework de testes unitários e um framework de benchmarks.
O código está organizado em headers em include/, fontes em src/ compiladas em libco e testes em unitest/. O projeto recomenda o xmake para o build e também oferece suporte ao CMake. É necessário um compilador C++17.
Recursos principais
- 01Corrotinas no estilo Go escalonadas entre threads, com stacks compartilhadas para reduzir o consumo de memória.
- 02API de sockets baseada em corrotinas, wrapper para servidor e cliente TCP com suporte a IPv6 e framework RPC baseado em JSON.
- 03Logger que imprime stack traces em caso de crash e oferece suporte a assertions em runtime.
- 04Parsing de flags para argumentos de linha de comando e arquivos de configuração, com aliases e geração automática de configurações.
- 05Tipo JSON integrado com interface fluente, além de frameworks para testes unitários e benchmarks.
Casos de uso
- Criar serviços de rede C++ de alto desempenho com corrotinas, sem depender de código cheio de callbacks.
- Adicionar logging rápido e preparado para lidar com crashes a aplicações C++.
- Fazer parsing de flags de linha de comando e arquivos de configuração em ferramentas C++.
- Substituir um conjunto de bibliotecas base separadas por uma única dependência.
Início rápido
- 1
Instale a ferramenta de build xmake pela página do projeto
- 2
No diretório raiz do coost, compile o libco
xmake - 3
Compile o programa de testes unitários
xmake b unitest - 4
Execute todos os casos de teste unitário
xmake r unitest
Antes de usar
- É necessário um compilador com suporte a C++17.
- Parte do código incluído vem de outros projetos e pode estar sujeita a licenças diferentes.
Em coleções
Tópicos
Perguntas frequentes
- O que é coost?
- Biblioteca base leve em C++ que reúne corrotinas no estilo goroutine, networking, logging, parsing de flags, JSON, testes unitários e benchmarks. coost é uma biblioteca base em C++ que reúne em uma única dependência os componentes de infraestrutura normalmente necessários para um serviço em C++. É compatível com Linux, macOS, Windows e FreeBSD, além de CPUs x86, x64, ARM e ARM64.
- coost é gratuito? Qual é a licença?
- coost é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- coost ainda é mantido?
- Manutenção ativa. O último commit de coost foi em 28 de set. de 2026.
- Para que posso usar coost?
- Criar serviços de rede C++ de alto desempenho com corrotinas, sem depender de código cheio de callbacks. Adicionar logging rápido e preparado para lidar com crashes a aplicações C++. Fazer parsing de flags de linha de comando e arquivos de configuração em ferramentas C++. Substituir um conjunto de bibliotecas base separadas por uma única dependência.
- Como instalar coost?
- Instale a ferramenta de build xmake pela página do projeto No diretório raiz do coost, compile o libco: xmake Compile o programa de testes unitários: xmake b unitest Execute todos os casos de teste unitário: xmake r unitest
- Onde consigo coost?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/idealvin/coost
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework de computação paralela e redes assíncronas em C++11, usado nos serviços de back-end da Sogou para criar workflows de tarefas baseados em DAG.
Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção.
Uma biblioteca de logging rápida, estruturada e com níveis para Go, com uma API Logger sem alocações e uma API SugaredLogger mais flexível.
Logger JSON de alocação zero para Go, com API encadeável, logs por nível e amostragem, além de saída opcional em CBOR.
Visualizador de logs via linha de comando que transforma logs JSON e logfmt em uma saída legível, com filtros, ordenação e acompanhamento em tempo real.