Open Source: Google veröffentlicht C++- und Python-Libraries

Unter dem Namen Abseil hat Google einige Bibliotheken veröffentlicht, die das Unternehmen intern seit Jahren nutzt und die vor allem die Standard-Libraries der Programmiersprachen ergänzen sollen.

 –  0 Kommentare
Open Source: Google veröffentlicht einige C++- und Python-Libraries

Google hat einige Code-Bibliotheken für die Programmiersprachen C++ und Python unter dem Namen Abseil veröffentlicht. Sie erweitern vor allem die Standardbibliotheken und gehören laut Googles Open-Source-Blog zu den wesentlichen Grundlagen des Software-Stacks des Internetriesen. Die APIs sind zudem Bestandteil anderer Open-Source-Projekte, die das Unternehmen betreibt oder unterstützt. Daher sei der Code lange im Produktivbetrieb getestet und werde noch auf Jahre weiter aufrechterhalten.

Die C++-Bibliotheken enthalten unter anderem Ergänzungen für C++11, die Teile des C++17-Standard implementieren, darunter string_view und optional. Beim Verwenden mit C++17 fungieren sie schlicht als Alias für die Standardimplementierung und nur beim Build mit C++11 kommt die Umsetzung in Abseil zum Einsatz. Alle Abseil-Bibliotheken sollen mit allen verbreiteten Betriebssystemen und Compilern ohne zusätzlichen Konfigurationsaufwand funktionieren.

Eine Vorgabe für Abseil ist, dass die Bibliotheken jeweils etwa fünf Jahre kompatibel zu den großen Compilern, Plattformen und Standardbibliotheken sein sollen. Derzeit gehen die Macher davon aus, dass zahlreiche Entwickler C++11 verwenden, aber ab 2019 werden sie darüber nachdenken, C++14 als Minimalanforderung vorzugeben. Der Fünfjahresplan soll eine Balance zwischen einer breiten Unterstützung von Standards und dem Bereitstellen aktueller APIs und Implementierungen gewährleisten.

Die zum Start veröffentlichten C++-Bibliotheken bringen neben den genannten string_view und optional unter anderem container als Erweiterung für die Standard Template Library (STL), time mit Abstraktionsfunktionen für Berechnungen und Formatierung von Zeitpunkten und -spannen und eine Synchronisationsbibliothek mit Primitiven wie absl::Mutex als Alternative für std::mutex, um bei nebenläufigen Programmen Daten vor gleichzeitigen Zugriffen aus mehreren Threads zu schützen. Außerdem gibt es eine debugging-Bibliothek, die derzeit Leak-Checks bietet und künftig auch Stacktraces ermöglichen soll.

Das Python-Repository ist noch recht spärlich bestückt, soll aber im Lauf der Zeit weitere Inhalte erhalten. Hier dürften sich unter anderem Bausteine für Machine-Learning-Anwendungen wie das von Google vorangetriebene Framework TensorFlow finden. Mittelfristig sollen das C++- und das Python-Projekt zusammenwachsen und ein gemeinsames Logging sowie einheitliche Kommandozeilenoptionen bekommen.

Weitere Details lassen sich dem Blogbeitrag und der Projektseite entnehmen. Auf GitHub ist neben den C++- und Python-Repositories, die jeweils den Quellcode unter der Apache-Lizenz bieten, eine Dokumentation verfügbar.

Siehe dazu auf heise Developer:

(rme)