Repolode
meta

meta/folly

Meta内部で広く使われている、Boostやstdを補完するFacebook製のオープンソースC++20コアライブラリ。

スター
30,553
フォーク
5,879
未解決の Issue
487
最終コミット
昨日

これは何?

Folly(Facebook Open-source Library)は、実用性と効率性を重視して開発されたC++20コンポーネントのコレクションです。標準ライブラリやBoostに必要な機能がない場合や、それらの実装が求めるパフォーマンス要件を満たさない場合に、その不足を補います。各コンポーネントは比較的独立しており、数個のシンボルから大規模なモジュールまでさまざまです。また、Metaの他のオープンソースC++プロジェクトから共通の依存ライブラリとして使われることもよくあります。

Follyは、C++20に対応したgcc、clang、MSVCを対象としています。CMakeによるビルドでは、システム上で見つからない依存関係を取得します。また、getdeps.pyを使えば、Follyと関連プロジェクトをまとめてビルドできます。Linux(x86-32、x86-64、ARM)、iOS、macOS、Windows(x86-64)で動作しますが、CMakeによるビルドがテストされているのは一部のプラットフォームのみです。コミット間のABI互換性は保証されていないため、一時的なprefixに静的ライブラリとしてビルドすることが推奨されています。

新しいコードや不安定なコードはexperimentalディレクトリに置かれており、クライアントでの利用を想定していません。ドキュメントはdocsフォルダにあり、各コンポーネントにはユニットテストが用意されています。

主な機能

  • 01標準ライブラリやBoostでは機能が不足する場面に対応するC++20コンポーネントを提供します。
  • 02CMakeでビルドでき、不足している依存関係を自動で取得します。
  • 03Linux、macOS、Windows、iOS上でgcc、clang、MSVCをサポートします。
  • 04Follyと関連プロジェクトをまとめてビルドするgetdeps.pyスクリプトを備えています。
  • 05各コンポーネントのユニットテストに加え、googletestとの任意の連携も利用できます。

ユースケース

  • 大規模なC++コードベースに、高性能なユーティリティコンポーネントを追加する。
  • Metaの他のオープンソースC++ライブラリに依存するC++プロジェクトをビルドする。
  • 独自実装のコンテナ、文字列ユーティリティ、同期プリミティブを、テスト済みの代替実装に置き換える。

クイックスタート

  1. 1

    リポジトリをクローンする

    git clone https://github.com/facebook/folly
  2. 2

    プロジェクトディレクトリに移動する

    cd folly
  3. 3

    CMakeビルドを設定する(不足している依存関係を取得します)

    cmake -B _build
  4. 4

    ライブラリをビルドする

    cmake --build _build

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

  • コミット間のABI互換性は保証されないため、静的ライブラリとしてビルドし、バージョンを固定することをおすすめします。
  • CMakeビルドは一部のプラットフォームでのみテストされており、最低対象プラットフォームはmacOSとLinuxです。
  • Windowsビルドでは多くのテストが無効になっています。

収録されている特集

トピック

#cpp#c-plus-plus-20#cpp-library#performance#cmake#concurrency

よくある質問

folly とは?
Meta内部で広く使われている、Boostやstdを補完するFacebook製のオープンソースC++20コアライブラリ。 Folly(Facebook Open-source Library)は、実用性と効率性を重視して開発されたC++20コンポーネントのコレクションです。標準ライブラリやBoostに必要な機能がない場合や、それらの実装が求めるパフォーマンス要件を満たさない場合に、その不足を補います。各コンポーネントは比較的独立しており、数個のシンボルから大規模なモジュールまでさまざまです。また、Metaの他のオープンソースC++プロジェクトから共通の依存ライブラリとして使われることもよくあります。
folly は無料で使えますか?ライセンスは?
folly は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
folly は今もメンテナンスされていますか?
活発にメンテナンス中。folly の最終コミットは 2026年11月6日 です。
folly は何に使えますか?
大規模なC++コードベースに、高性能なユーティリティコンポーネントを追加する。 Metaの他のオープンソースC++ライブラリに依存するC++プロジェクトをビルドする。 独自実装のコンテナ、文字列ユーティリティ、同期プリミティブを、テスト済みの代替実装に置き換える。
folly のインストール方法は?
リポジトリをクローンする: git clone https://github.com/facebook/folly プロジェクトディレクトリに移動する: cd folly CMakeビルドを設定する(不足している依存関係を取得します): cmake -B _build ライブラリをビルドする: cmake --build _build
folly はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/meta/folly

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

関連プロジェクト