Repolode
idealvin

idealvin/coost

一个轻量的 C++ 基础库,集成 goroutine 风格协程、网络、日志、命令行参数、JSON、单元测试与基准测试。

Star
4,225
Fork
593
未关闭 Issue
0
最近提交
27天前

这是什么?

coost 是一个 C++ 基础库,把 C++ 服务常用的基础组件打包在一个依赖中。它支持 Linux、macOS、Windows、FreeBSD,以及 x86、x64、ARM、ARM64 等 CPU 架构。

库内提供类似 Golang goroutine 的协程,默认按 CPU 核心数在多线程上调度,并通过共享栈降低内存占用。基于协程的 socket API、TCP 服务端与客户端封装,以及基于 JSON 序列化的简单 RPC 框架都建立在其上。此外还包括程序崩溃时可打印调用栈的日志组件、命令行与配置文件解析的 flag 模块、链式接口的 JSON 类型、单元测试框架和基准测试框架。

头文件位于 include/,源码编译为 libco,测试代码位于 unitest/。项目推荐使用 xmake 构建,也支持 CMake,编译需要支持 C++17 的编译器。

核心功能

  • 01类 goroutine 的协程,多线程调度,共享栈降低内存占用。
  • 02基于协程的 socket API、支持 IPv6 的 TCP 封装,以及基于 JSON 的 RPC 框架。
  • 03日志组件,程序崩溃时打印调用栈,并支持运行时断言。
  • 04命令行参数与配置文件解析,支持别名和自动生成配置文件。
  • 05内置链式接口的 JSON 类型,并提供单元测试与基准测试框架。

适用场景

  • 在 C++ 中用协程编写高性能网络服务,避免大量回调代码。
  • 为 C++ 应用添加高性能且能在崩溃时输出调用栈的日志。
  • 在 C++ 工具中解析命令行参数和配置文件。
  • 用单一依赖替代多个独立的 C++ 基础库。

快速上手

  1. 1

    从 xmake 项目页面安装 xmake 构建工具

  2. 2

    在 coost 根目录下构建 libco

    xmake
  3. 3

    构建单元测试程序

    xmake b unitest
  4. 4

    运行所有单元测试用例

    xmake r unitest

使用前须知

  • 需要支持 C++17 的编译器。
  • 部分内置代码来自其他项目,可能采用不同的许可证。

收录于专题

标签

常见问题

coost 是什么?
一个轻量的 C++ 基础库,集成 goroutine 风格协程、网络、日志、命令行参数、JSON、单元测试与基准测试。 coost 是一个 C++ 基础库,把 C++ 服务常用的基础组件打包在一个依赖中。它支持 Linux、macOS、Windows、FreeBSD,以及 x86、x64、ARM、ARM64 等 CPU 架构。
coost 可以免费使用吗?用的什么许可证?
coost 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
coost 还在维护吗?
活跃维护中。coost 最近一次提交是在 2026年9月28日。
coost 适合用来做什么?
在 C++ 中用协程编写高性能网络服务,避免大量回调代码。 为 C++ 应用添加高性能且能在崩溃时输出调用栈的日志。 在 C++ 工具中解析命令行参数和配置文件。 用单一依赖替代多个独立的 C++ 基础库。
coost 怎么安装和运行?
从 xmake 项目页面安装 xmake 构建工具 在 coost 根目录下构建 libco: xmake 构建单元测试程序: xmake b unitest 运行所有单元测试用例: xmake r unitest
在哪里获取 coost?
源代码和安装说明在 GitHub 上:https://github.com/idealvin/coost

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目