pocoproject/poco
HTTP、ネットワーク、データベース、XML/JSON、ログ機能を備えた、ネットワーク中心のアプリケーション構築向けクロスプラットフォームC++クラスライブラリ。
- スター
- 9,489
- フォーク
- 2,325
- 未解決の Issue
- 154
- 最終コミット
- 昨日
これは何?
POCO(Portable Components)C++ Librariesは、よくある実用上の課題に対応するC++クラスライブラリ群で、インターネット時代のネットワーク中心のアプリケーションに重点を置いています。考え方としてはJava Class Libraryや.NET Frameworkに似ていますが、最新の標準C++で構築されており、STLを置き換えるのではなく補完します。
組み込みデバイスからサーバーまで幅広いプラットフォームを対象とし、Boost Software Licenseで公開されています。ビルドにはCMakeを使用し、OpenSSL、MySQL、PostgreSQL、ODBCなどのオプション依存関係を追加すると、安全な接続やデータベースアクセスを利用できます。サイズに制約のある環境向けに、コンポーネントを選択してビルドすることもできます。
リポジトリのトピックは、HTTPクライアントとサーバー、ネットワーク、SQLとデータベースアクセス、MongoDBおよびRedisクライアント、JSON、XML、設定、ログ機能を網羅しており、同じプロジェクトでBoostと併用できる場合も多くあります。
主な機能
- 01ネットワークアプリケーション向けのHTTPクライアントおよびサーバーコンポーネントを提供します。
- 02SQLデータベースへのアクセスに加え、MongoDBおよびRedisクライアントを備えています。
- 03JSONおよびXMLの解析、設定、ログ機能を提供します。
- 04OpenSSLと、WindowsネイティブのSChannel TLSに対応しています。
- 05CMakeでビルドでき、vcpkgまたはConanからインストールできます。
- 06コンポーネントを選択してビルドし、バイナリサイズを削減できます。
ユースケース
- デスクトップ、サーバー、組み込みLinux向けに、C++でHTTPサービスやクライアントを構築する。
- C++アプリケーションからMySQL、PostgreSQL、またはODBCデータベースにアクセスする。
- 既存のネットワーク対応製品に、C++のログ機能と設定機能を追加する。
- Windows、Linux、macOSで同じネットワークコードを動作させる。
クイックスタート
- 1
Debian/Ubuntu に依存関係をインストール
sudo apt-get -y update && sudo apt-get -y install git g++ cmake libssl-dev libmysqlclient-dev libpq-dev - 2
リポジトリをクローン
git clone -b main https://github.com/pocoproject/poco.git - 3
CMake でビルドを設定
cd poco && mkdir cmake-build && cd cmake-build && cmake .. - 4
ライブラリをビルド
cmake --build . --config Release
使う前に知っておきたいこと
- C++20 に対応したコンパイラと CMake 3.26 以降が必要です。
- オプションのデータベース機能や TLS 機能には、OpenSSL、MySQL、PostgreSQL などの追加クライアントライブラリが必要です。
収録されている特集
トピック
よくある質問
- poco とは?
- HTTP、ネットワーク、データベース、XML/JSON、ログ機能を備えた、ネットワーク中心のアプリケーション構築向けクロスプラットフォームC++クラスライブラリ。 POCO(Portable Components)C++ Librariesは、よくある実用上の課題に対応するC++クラスライブラリ群で、インターネット時代のネットワーク中心のアプリケーションに重点を置いています。考え方としてはJava Class Libraryや.NET Frameworkに似ていますが、最新の標準C++で構築されており、STLを置き換えるのではなく補完します。
- poco は無料で使えますか?ライセンスは?
- poco は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- poco は今もメンテナンスされていますか?
- 活発にメンテナンス中。poco の最終コミットは 2026年10月23日 です。
- poco は何に使えますか?
- デスクトップ、サーバー、組み込みLinux向けに、C++でHTTPサービスやクライアントを構築する。 C++アプリケーションからMySQL、PostgreSQL、またはODBCデータベースにアクセスする。 既存のネットワーク対応製品に、C++のログ機能と設定機能を追加する。 Windows、Linux、macOSで同じネットワークコードを動作させる。
- poco のインストール方法は?
- Debian/Ubuntu に依存関係をインストール: sudo apt-get -y update && sudo apt-get -y install git g++ cmake libssl-dev libmysqlclient-dev libpq-dev リポジトリをクローン: git clone -b main https://github.com/pocoproject/poco.git CMake でビルドを設定: cd poco && mkdir cmake-build && cd cmake-build && cmake .. ライブラリをビルド: cmake --build . --config Release
- poco はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/pocoproject/poco
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
goroutine風コルーチン、ネットワーク、ロギング、フラグ解析、JSON、ユニットテスト、ベンチマークをまとめた軽量C++基盤ライブラリ。
JSON、YAML、CSV、XMLをインタラクティブなグラフに変換し、形式変換やコード生成もできるオープンソースのJSONエディター。
長時間稼働するTCP、UDP、HTTP、WebSocketサービスの構築に使える、イベント駆動型ネットワークエンジンとコルーチンランタイムを提供するPHP拡張です。
Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。
セッション、Cookie、認証、JSONに対応した、HTTP/1.1リクエスト送信用のシンプルで使いやすいPython HTTPライブラリです。