一个用于构建生产级 TypeScript 应用的库,提供类型化错误、依赖注入、结构化并发和 Schema 校验。
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 数据每日更新。
相关项目
一个面向 Go 的高性能、并发安全的内存缓存库,支持按成本淘汰。
一套仅含头文件的 C++ 哈希表与 B 树容器库,可替代 std 中的无序和有序容器,速度快、内存占用低。
面向 TypeScript 与 JavaScript 的通用日志库,支持美化终端输出、结构化 JSON、敏感信息脱敏,且无运行时依赖。
Go 语言工具函数库,提供 700 多个可复用函数,覆盖字符串、切片、时间、网络、加密等场景。
Python 调试工具,用 ic() 替代 print(),同时输出变量名、表达式及其值,并支持格式化和语法高亮。