社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Google开源了Abseil,为C++和Python开发提供支持

网络大数据 • 7 年前 • 656 次点击  

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版本的软件库将随后发布。


感谢观看!

end





网络大数据

 (ID:raincent_com


网络大数据 www.raincent.com

由清华CDN实验室于2011年创办,

致力于打造中国最专业的网络大数据科学门户网站。


识别二维码,关注网络大数据






今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/JRZM3A7M8c
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3704
 
656 次点击