整形出力、非同期モード、ローテーションファイルやコンソール、syslogなど複数の出力先に対応した高速なC++ロギングライブラリ。
pybind/pybind11
既存のC++コードにPythonバインディングを作成するための、C++の型や関数をPythonに公開するヘッダーオンリーのC++11ライブラリ。
- スター
- 18,028
- フォーク
- 2,331
- 未解決の Issue
- 716
- 最終コミット
- 13 時間前
これは何?
pybind11は、C++の型をPythonに公開するための軽量なヘッダーオンリーライブラリで、主に既存のC++コードにPythonバインディングを作成するために使われます。目標や構文はBoost.Pythonに似ていますが、Boostへの依存をなくし、Python C APIとC++標準ライブラリのみに依存します。また、C++11の機能を使ってコンパイル時に型情報を推論します。
このライブラリは、値・参照・ポインターでカスタム型を受け取ったり返したりする関数、メソッドや属性を持つクラス、オーバーロードされた関数、例外、列挙型、コールバック、イテレーター、継承、STLコンテナ、std::shared_ptrなど、一般的なC++の構成要素をPythonに対応付けます。仮想メソッドを持つC++クラスはPython側で拡張でき、NumPyとの連携も含まれています。CPython 3.9以降、PyPy、GraalPyに対応しています。
すべてが少数のヘッダーファイルに収まっているため、追加のリンクライブラリは不要です。READMEには、setuptools、scikit-build、CMakeを使ったパッケージング例も記載されています。
主な機能
- 01ヘッダーオンリーのため、追加ライブラリのリンクが不要
- 02クラス、オーバーロード、列挙型、例外、STLコンテナをPythonに対応付ける
- 03仮想メソッドを持つC++クラスをPython側で拡張できる
- 04NumPyとの連携とバッファプロトコルへのアクセスを統合
- 05CPython 3.9以降、PyPy、GraalPyに対応
ユースケース
- 既存のC++ライブラリをラップし、Pythonコードから呼び出せるようにする
- 処理性能が重要なC++ルーチンをPythonスクリプトに公開する
- コピーせずにC++コードとPythonの間でNumPy配列を受け渡す
クイックスタート
- 1
README でリンクされている Setuptools のサンプルプロジェクトから始めてください
使う前に知っておきたいこと
- C++11 に対応したコンパイラと、CPython 3.9 以降、PyPy、または GraalPy が必要です。
トピック
よくある質問
- pybind11 とは?
- 既存のC++コードにPythonバインディングを作成するための、C++の型や関数をPythonに公開するヘッダーオンリーのC++11ライブラリ。 pybind11は、C++の型をPythonに公開するための軽量なヘッダーオンリーライブラリで、主に既存のC++コードにPythonバインディングを作成するために使われます。目標や構文はBoost.Pythonに似ていますが、Boostへの依存をなくし、Python C APIとC++標準ライブラリのみに依存します。また、C++11の機能を使ってコンパイル時に型情報を推論します。
- pybind11 は無料で使えますか?ライセンスは?
- pybind11 は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- pybind11 は今もメンテナンスされていますか?
- 活発にメンテナンス中。pybind11 の最終コミットは 2026年10月24日 です。
- pybind11 は何に使えますか?
- 既存のC++ライブラリをラップし、Pythonコードから呼び出せるようにする 処理性能が重要なC++ルーチンをPythonスクリプトに公開する コピーせずにC++コードとPythonの間でNumPy配列を受け渡す
- pybind11 のインストール方法は?
- README でリンクされている Setuptools のサンプルプロジェクトから始めてください
- pybind11 はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/pybind/pybind11
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ブロッキングソケットI/OでHTTP/HTTPSサーバーとクライアントを構築できる、C++11対応のシングルヘッダーライブラリ。
文字列から float、double、整数値を高速かつ正確に解析する、from_chars互換のヘッダーオンリーC++ライブラリ。
STL風の構文でJSONの解析、構築、操作、シリアライズができる、ヘッダーオンリーのC++11ライブラリ。
C stdioやiostreamsに代わる高速で型安全なC++フォーマットライブラリ。C++20のstd::formatを実装しています。
C++11からC++26までのモダンC++の機能を、トピック別に解説する無料のオープンソース書籍・Webサイト。