纯头文件的 C++ 库,快速且精确地把字符串解析为 float、double 和整数,实现 from_chars 接口。
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
克隆仓库
git clone https://github.com/facebook/folly - 2
进入项目目录
cd folly - 3
配置 CMake 构建(自动获取缺失的依赖)
cmake -B _build - 4
编译库
cmake --build _build
使用前须知
- 不同提交之间不保证 ABI 兼容,建议以静态库方式构建并固定版本。
- CMake 构建仅在部分平台测试,最低目标为 macOS 和 Linux。
- Windows 构建中许多测试被禁用。
收录于专题
标签
常见问题
- 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 数据每日更新。
相关项目
2144+4 本周202C++Apache-2.0维护活跃更新于 7天前
一个 C++ 微基准测试库,用于对代码片段计时,写法与单元测试相似。
1万+7 本周1825C++Apache-2.0维护活跃更新于 21小时前
面向 Go 的高性能并发内存缓存,可存储海量条目且降低 GC 开销。
8175620GoApache-2.0更新于 4天前
一个面向 Go 的高性能、并发安全的内存缓存库,支持按成本淘汰。
7007+2 本周464GoApache-2.0更新于 2个月前
Node.js 工作线程池,把计算密集型任务转移到子线程执行,避免阻塞主事件循环。
5235+4 本周179TypeScriptOther维护活跃更新于 24小时前
面向 Java 高性能场景的数据结构与工具库,包含原始类型集合、堆外缓冲区、队列和定时器轮等。
3266459JavaApache-2.0维护活跃更新于 昨天