HTTP、ネットワーク、データベース、XML/JSON、ログ機能を備えた、ネットワーク中心のアプリケーション構築向けクロスプラットフォームC++クラスライブラリ。
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
プロジェクトのページからビルドツール xmake をインストールします
- 2
coost のルートディレクトリで libco をビルドします
xmake - 3
単体テストプログラムをビルドします
xmake b unitest - 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 の数値は毎日更新されます。
関連プロジェクト
Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。
拡張可能なフォーマッターとフックを備えた、Go標準のlog API互換ロガー。現在はメンテナンスモード。
Go向けの高速な構造化ログライブラリ。ゼロアロケーションのLoggerと、より柔軟なSugaredLogger APIを提供します。
チェーンAPI、レベル別・サンプリングログ、任意のCBOR出力を備えた、Go向けのゼロアロケーションJSONロガー。
JSONやlogfmtのログを読みやすく表示し、フィルタリング、ソート、ライブ追従にも対応するコマンドラインログビューア。