Repolode
idealvin

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. 1

    Instale a ferramenta de build xmake pela página do projeto

  2. 2

    No diretório raiz do coost, compile o libco

    xmake
  3. 3

    Compile o programa de testes unitários

    xmake b unitest
  4. 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