Repolode
meta

meta/folly

Facebook 开源的 C++20 核心组件库,对 Boost 和 std 起补充作用,Meta 内部广泛使用。

Star
30,554
Fork
5,879
未关闭 Issue
487
最近提交
17小时前

这是什么?

Folly 是一个用 C++20 编写的组件库,设计重点是实用性和效率。它主要补充标准库和 Boost 中缺失的功能,或在现有实现无法满足性能要求时提供替代实现。各组件之间相对独立,规模从几个符号到较大的模块不等,也是 Meta 其他 C++ 开源项目常用的共享依赖。

项目支持 gcc、clang 或支持 C++20 的 MSVC 编译器,可在 Linux(x86-32、x86-64、ARM)、iOS、macOS 和 Windows(x86-64)上运行。CMake 构建会自动拉取系统中未找到的依赖,也可以通过 getdeps.py 脚本连同相关项目一起构建。由于不同提交之间不保证 ABI 兼容,推荐将其编译为静态库并安装到临时目录中使用。

位于 experimental 目录下的代码尚不够稳定,不建议外部项目直接使用。文档位于 docs 目录,每个组件都配有单元测试。

核心功能

  • 01提供 C++20 组件,弥补标准库和 Boost 的不足。
  • 02通过 CMake 构建,缺失的依赖会自动拉取。
  • 03支持 gcc、clang 和 MSVC 编译器,覆盖 Linux、macOS、Windows 和 iOS。
  • 04提供 getdeps.py 脚本,可同时构建 folly 及其配套项目。
  • 05每个组件配有单元测试,可选集成 googletest。

适用场景

  • 为大型 C++ 项目补充高性能的基础工具组件。
  • 构建依赖 Meta 其他开源 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 是什么?
Facebook 开源的 C++20 核心组件库,对 Boost 和 std 起补充作用,Meta 内部广泛使用。 Folly 是一个用 C++20 编写的组件库,设计重点是实用性和效率。它主要补充标准库和 Boost 中缺失的功能,或在现有实现无法满足性能要求时提供替代实现。各组件之间相对独立,规模从几个符号到较大的模块不等,也是 Meta 其他 C++ 开源项目常用的共享依赖。
folly 可以免费使用吗?用的什么许可证?
folly 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
folly 还在维护吗?
活跃维护中。folly 最近一次提交是在 2026年11月6日。
folly 适合用来做什么?
为大型 C++ 项目补充高性能的基础工具组件。 构建依赖 Meta 其他开源 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目