Google开源了Abseil,为C++和Python开发提供支持
来源:互联网 发布:淘宝企业店开店流程 编辑:程序博客网 时间:2024/06/15 01:04
Google公开了其项目内部使用的一系列C++库,随后还会公开其Python库。
Abseil已在Google历经十多年的开发,它的目的是为Google编程人员在各种项目上的工作需求提供支持,这些项目包括Protocol Buffers、gRPC和TensorFlow等。Google评价Abseil为:
- 它是从Google内部代码块中抽取出来的一系列最基础的软件库。作为基本的组成部分,这些软件库支撑了几乎全部Google在运行的项目。以前这些API是零零散散地嵌入在Google的大部分开源项目中,现在我们将它们规整在一起,形成这样一个全面的项目。
- Abseil是Google代码库的最基本构建模块,其代码经过了生产环节测试,此后还会继续得到完全的维护。
最初,Abseil提供的抽象并非C++ 14或C++ 17的组成部分,但最终它们已被添加到C++标准中。例如,Google提供一个称为StringPiece的类型,随后C++ 17也添加了一个称为std::string_view的相近类型。为了与新的C++ 17类型具有一致的API,Google将StringPiece重构为absl::string_view。从底层机制上看,如果开发人员正在使用的是C++ 17,那么Abseil的string_view默认为标准实现;如果开发人员正在使用的是C++ 17以前的版本,那么string_view默认为Google的实现。
使用Abseil的优点在于可以访问一些目前依然尚未添加到标准中的C++特性,并且一旦这些特性被添加到C++标准中,Google保证会重构这些特性为默认使用标准实现。Google鼓励开发人员使用Abseil,并提及已有超过两亿五千万行的C++代码使用它,并且几乎所有从头开始构建的项目都使用了它。这意味着,Abseil已被Google广为使用,并出于与项目需求同步的考虑而得以频繁维护。
Abseil中包括如下的库:
- base:初始化,以及其它的基础代码。
- algorithm:对C++的库的补充,并为原算法提供了基于容器的版本。
- container:提供了更多的STL类型容器。
- debugging:用于检查泄漏的调试库。
- memory:包括兼容C++ 11版本的std::make_unique()和内存管理。
- meta:包括兼容C++ 11版本的类型检查,在C++ 14和C++ 17版本的C++ 库中可用。
- numeric:兼容C++ 11的128位整数。
- strings:各种字符串工具。
- synchronization:并发原语和同步抽象。
- time:抽象了绝对时间点操作和时区操作。
- types:非容器工具的类型。
Abseil的代码采用Apache许可,已发布在GitHub上。其Python版本的软件库将随后发布。
阅读全文
0 0
- Google开源了Abseil,为C++和Python开发提供支持
- 使用 WebSphere sMash 为 Google Gadget提供支持
- Google CEO:手机为我们提供了最大的商机
- 智能客户端开发中心为您提供了大量的智能客户端开发指南和资源
- Google开放源码为Android开发提供软件样板
- 《扩展和嵌入python解释器》1.12 为扩展模块提供C API
- AjaxSamples.cn-为广大AJAX开发者提供支持和动力
- C#和.net为多线程提供的支持
- 为APP名称和内部控件提供多语言支持
- eclipse SDK 安装和配置 GDB 为 C/C++ 开发环境提供 debug 调试
- 人性的胜利 Google 为 Apps for business 全球客户提供电话支持
- Google为developer提供prototype
- google提供了subversion服务!
- Google将通过Gmail、Calendar和Google+数据为用户提供个性化搜索结果
- spring为web应用提供了几个过滤器和监听器
- Google X 的热气球终于派上用场了,为波多黎各提供 LTE 网络
- 刚刚发现不能支持Google广告代码和统计了
- eclipse SDK 安装和配置 GDB 为 C/C++ 开发环境提供 debug 调试 [ 带自录制视频 ]
- Packagist 镜像使用方法
- 【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
- cinder的配置和子服务
- LinkedHashMap和HashMap的比较使用
- 前端基础知识总结
- Google开源了Abseil,为C++和Python开发提供支持
- shader内置变量和函数
- 吴恩达第5周答案 Neural Networks: Learning 答案
- 代码生成器CodeGenerator(目前只支持SpringBoot/SpringDataJpa)
- 【机器学习算法-python实现】KNN-k近邻算法的实现(附源码)
- 对象方法的引用
- 未来 3~5 年,哪个方向的机器学习人才最紧缺?
- 浅析Myeclipse Server run模式与debug模式的一些区别
- 数据库优化