Repolode
idealvin

idealvin/coost

goroutine風コルーチン、ネットワーク、ロギング、フラグ解析、JSON、ユニットテスト、ベンチマークをまとめた軽量C++基盤ライブラリ。

スター
4,226
フォーク
593
未解決の Issue
0
最終コミット
26 日前

これは何?

coostは、C++サービスで一般的に必要となる基盤コンポーネントを1つの依存関係にまとめたC++基盤ライブラリです。Linux、macOS、Windows、FreeBSDに対応し、CPUアーキテクチャはx86、x64、ARM、ARM64をサポートします。

スレッド間でデフォルトでスケジューリングされ、メモリ使用量を抑える共有スタックを備えた、goスタイルのコルーチンを提供します。その上に、コルーチンベースのsocket API、TCPサーバー/クライアントのラッパー、シンプルなJSONベースのRPCフレームワークを構築できます。ほかにも、クラッシュ時にスタックトレースを出力するロガー、コマンドライン引数や設定ファイル用のフラグパーサー、流れるように記述できるインターフェースを持つJSON型、ユニットテストフレームワーク、ベンチマークフレームワークを備えています。

コードは、include/以下のヘッダー、libcoにコンパイルされるsrc/以下のソース、unitest/以下のテストに分かれています。ビルドにはxmakeが推奨されており、CMakeにも対応しています。C++17コンパイラが必要です。

主な機能

  • 01スレッド間でスケジューリングされ、メモリ使用量を抑える共有スタックを備えたGoスタイルのコルーチン。
  • 02コルーチンベースのsocket API、IPv6対応のTCPサーバー/クライアントラッパー、JSONベースのRPCフレームワーク。
  • 03クラッシュ時にスタックトレースを出力し、実行時アサーションにも対応するロガー。
  • 04コマンドライン引数や設定ファイルのフラグ解析。エイリアスと設定ファイルの自動生成にも対応。
  • 05流れるように記述できるインターフェースを備えた組み込みJSON型に加え、ユニットテストとベンチマークの各フレームワーク。

ユースケース

  • コールバックだらけのコードを避け、コルーチンを使って高性能なC++ネットワークサービスを構築する。
  • C++アプリケーションに、高速でクラッシュにも対応したロギングを追加する。
  • C++ツールでコマンドラインフラグや設定ファイルを解析する。
  • 複数の基盤ライブラリを個別に使う代わりに、1つの依存関係にまとめる。

クイックスタート

  1. 1

    プロジェクトのページからビルドツール xmake をインストールします

  2. 2

    coost のルートディレクトリで libco をビルドします

    xmake
  3. 3

    単体テストプログラムをビルドします

    xmake b unitest
  4. 4

    すべての単体テストケースを実行します

    xmake r unitest

使う前に知っておきたいこと

  • C++17 に対応したコンパイラが必要です。
  • 同梱コードの一部は他のプロジェクトに由来しており、異なるライセンスが適用されている場合があります。

収録されている特集

トピック

よくある質問

coost とは?
goroutine風コルーチン、ネットワーク、ロギング、フラグ解析、JSON、ユニットテスト、ベンチマークをまとめた軽量C++基盤ライブラリ。 coostは、C++サービスで一般的に必要となる基盤コンポーネントを1つの依存関係にまとめたC++基盤ライブラリです。Linux、macOS、Windows、FreeBSDに対応し、CPUアーキテクチャはx86、x64、ARM、ARM64をサポートします。
coost は無料で使えますか?ライセンスは?
coost は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
coost は今もメンテナンスされていますか?
活発にメンテナンス中。coost の最終コミットは 2026年9月28日 です。
coost は何に使えますか?
コールバックだらけのコードを避け、コルーチンを使って高性能なC++ネットワークサービスを構築する。 C++アプリケーションに、高速でクラッシュにも対応したロギングを追加する。 C++ツールでコマンドラインフラグや設定ファイルを解析する。 複数の基盤ライブラリを個別に使う代わりに、1つの依存関係にまとめる。
coost のインストール方法は?
プロジェクトのページからビルドツール xmake をインストールします coost のルートディレクトリで libco をビルドします: xmake 単体テストプログラムをビルドします: xmake b unitest すべての単体テストケースを実行します: xmake r unitest
coost はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/idealvin/coost

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト