Repolode
abseil

abseil/abseil-cpp

Abseil 是 Google 开源的 C++17 通用库,为标准库补充容器、字符串、时间、日志和并发等工具。

Star
18,169
Fork
3,186
未关闭 Issue
306
最近提交
39分钟前

这是什么?

Abseil 是一套 C++ 通用库代码,基于 C++17 编写,用于补充标准库的不足。代码来自 Google 内部的 C++ 代码库,并在日常开发中长期使用。在部分场景下它提供标准库缺失的功能,在另一些场景下则提供针对大规模使用经验调整过的替代实现。

库按组件划分,包括 base、容器(含 Swiss table 哈希容器)、status(absl::Status 与 absl::StatusOr<T>)、strings、time、日志(LOG 与 CHECK 宏)、flags、hash、random,以及 absl::Mutex 等同步原语。每个组件位于 absl/ 下的独立目录中,开发者可以只依赖所需部分。

Abseil 支持 Bazel 和 CMake 两种构建方式,编译器与平台支持遵循 Google 的 C++ 基础支持政策。项目建议跟随 master 分支更新,同时也发布长期支持(LTS)版本,为其中的严重缺陷提供回移修复。

核心功能

  • 01提供容器类型,包括 Swiss table 哈希容器
  • 02通过 absl::Status 与 absl::StatusOr<T> 处理错误
  • 03提供字符串工具、时间与时区处理及随机数生成
  • 04提供 LOG、CHECK 日志宏和 absl::Mutex 同步原语
  • 05各组件模块化,可单独使用
  • 06支持 Bazel 与 CMake 构建

适用场景

  • 在大型 C++ 项目中采用基于 Status 的错误处理
  • 在对性能敏感的代码中使用 Swiss table 哈希容器
  • 在并发服务中使用 absl::Mutex 替代 std::mutex
  • 在 C++ 应用中进行跨时区的时间解析与格式化

收录于专题

标签

常见问题

abseil-cpp 是什么?
Abseil 是 Google 开源的 C++17 通用库,为标准库补充容器、字符串、时间、日志和并发等工具。 Abseil 是一套 C++ 通用库代码,基于 C++17 编写,用于补充标准库的不足。代码来自 Google 内部的 C++ 代码库,并在日常开发中长期使用。在部分场景下它提供标准库缺失的功能,在另一些场景下则提供针对大规模使用经验调整过的替代实现。
abseil-cpp 可以免费使用吗?用的什么许可证?
abseil-cpp 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
abseil-cpp 还在维护吗?
活跃维护中。abseil-cpp 最近一次提交是在 2026年10月25日。
abseil-cpp 适合用来做什么?
在大型 C++ 项目中采用基于 Status 的错误处理 在对性能敏感的代码中使用 Swiss table 哈希容器 在并发服务中使用 absl::Mutex 替代 std::mutex 在 C++ 应用中进行跨时区的时间解析与格式化
在哪里获取 abseil-cpp?
源代码和安装说明在 GitHub 上:https://github.com/abseil/abseil-cpp

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

相关项目