Bibliotecas de clases C++ multiplataforma para crear aplicaciones centradas en la red, con soporte para HTTP, bases de datos, XML/JSON y logging.
idealvin/coost
Biblioteca base ligera de C++ que reúne corrutinas al estilo goroutine, networking, logging, análisis de flags, JSON, pruebas unitarias y benchmarking.
- Estrellas
- 4,225
- Forks
- 593
- Issues abiertos
- 0
- Último commit
- hace 27 días
¿Qué es?
coost es una biblioteca base de C++ que reúne en una sola dependencia los componentes de infraestructura que suele necesitar un servicio de C++. Es compatible con Linux, macOS, Windows y FreeBSD, y con CPU x86, x64, ARM y ARM64.
La biblioteca ofrece corrutinas al estilo Go que, de forma predeterminada, se distribuyen entre varios threads y usan stacks compartidos para reducir el consumo de memoria. Sobre ellas se construyen una API de sockets basada en corrutinas, un wrapper para servidores y clientes TCP, y un framework RPC sencillo basado en JSON. Entre los demás componentes se incluyen un logger que imprime stack traces cuando se producen crashes, un parser de flags para argumentos de línea de comandos y archivos de configuración, un tipo JSON con una interfaz fluida, un framework de pruebas unitarias y otro de benchmarking.
El código se organiza en headers bajo include/, fuentes bajo src/ que se compilan en libco, y pruebas bajo unitest/. El proyecto recomienda xmake para compilar y también es compatible con CMake. Requiere un compilador de C++17.
Funciones clave
- 01Corrutinas al estilo Go distribuidas entre varios threads, con stacks compartidos para reducir el consumo de memoria.
- 02API de sockets basada en corrutinas, wrapper para servidores y clientes TCP con compatibilidad con IPv6, y framework RPC basado en JSON.
- 03Logger que imprime stack traces cuando se producen crashes y admite aserciones en tiempo de ejecución.
- 04Análisis de flags para argumentos de línea de comandos y archivos de configuración, con alias y generación automática de archivos de configuración.
- 05Tipo JSON integrado con una interfaz fluida, además de frameworks de pruebas unitarias y benchmarking.
Casos de uso
- Crear servicios de red de C++ de alto rendimiento basados en corrutinas, sin depender de código cargado de callbacks.
- Añadir logging rápido y preparado para detectar crashes a aplicaciones de C++.
- Analizar flags de línea de comandos y archivos de configuración en herramientas de C++.
- Sustituir varias bibliotecas base independientes por una sola dependencia.
Inicio rápido
- 1
Instala la herramienta de compilación xmake desde la página del proyecto
- 2
Desde el directorio raíz de coost, compila libco
xmake - 3
Compila el programa de pruebas unitarias
xmake b unitest - 4
Ejecuta todos los casos de prueba unitaria
xmake r unitest
Antes de usarlo
- Se necesita un compilador compatible con C++17.
- Parte del código incluido procede de otros proyectos y puede estar sujeto a licencias diferentes.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es coost?
- Biblioteca base ligera de C++ que reúne corrutinas al estilo goroutine, networking, logging, análisis de flags, JSON, pruebas unitarias y benchmarking. coost es una biblioteca base de C++ que reúne en una sola dependencia los componentes de infraestructura que suele necesitar un servicio de C++. Es compatible con Linux, macOS, Windows y FreeBSD, y con CPU x86, x64, ARM y ARM64.
- ¿coost es gratuito? ¿Qué licencia tiene?
- coost es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿coost sigue mantenido?
- Mantenimiento activo. El último commit de coost fue el 28 sept 2026.
- ¿Para qué puedo usar coost?
- Crear servicios de red de C++ de alto rendimiento basados en corrutinas, sin depender de código cargado de callbacks. Añadir logging rápido y preparado para detectar crashes a aplicaciones de C++. Analizar flags de línea de comandos y archivos de configuración en herramientas de C++. Sustituir varias bibliotecas base independientes por una sola dependencia.
- ¿Cómo se instala coost?
- Instala la herramienta de compilación xmake desde la página del proyecto Desde el directorio raíz de coost, compila libco: xmake Compila el programa de pruebas unitarias: xmake b unitest Ejecuta todos los casos de prueba unitaria: xmake r unitest
- ¿Dónde consigo coost?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/idealvin/coost
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework de computación paralela y redes asíncronas en C++11, usado en los servicios de back-end de Sogou para crear flujos de tareas basados en DAG.
Logger estructurado y compatible a nivel de API con Go, con formatters y hooks extensibles, actualmente en modo de mantenimiento.
Una biblioteca de logging estructurado y por niveles para Go, rápida y con una API Logger que no asigna memoria y una API SugaredLogger más flexible.
Un logger JSON para Go con cero asignaciones, API encadenable, logging por niveles y con muestreo, y salida opcional en CBOR.
Un visor de logs para la línea de comandos que convierte logs JSON y logfmt en texto legible, con filtros, ordenación y seguimiento en tiempo real.