abseil-cpp README

The project's README from github.com/abseil/abseil-cpp. As one markdown file: README.md.

Abseil - C++ Common Libraries

The repository contains the Abseil C++ library code. Abseil is an open-source collection of C++ code (compliant to C++17) designed to augment the C++ standard library.

Table of Contents

About Abseil

Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.

In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you.

Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole.

Quickstart

If you want to just get started, make sure you at least run through the Abseil Quickstart. The Quickstart contains information about setting up your development environment, downloading the Abseil code, running tests, and getting a simple binary working.

Building Abseil

Bazel and CMake are the official build systems for Abseil. See the quickstart for more information on building Abseil using the Bazel build system. If you require CMake support, please check the CMake build instructions and CMake Quickstart.

Support

Abseil follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.

Codemap

Abseil contains the following C++ library components:

Releases

Abseil recommends users "live-at-head" (update to the latest commit from the master branch as often as possible). However, we realize this philosophy doesn't work for every project, so we also provide Long Term Support Releases to which we backport fixes for severe bugs. See our release management document for more details.

License

The Abseil C++ library is licensed under the terms of the Apache license. See LICENSE for more information.

For more information about Abseil:

abseil-cpp (abseil/abseil-cpp)

Searching Database…

What is this?Abseil is Google's open-source collection of C++ library code that augments the C++ standard library. It's extracted from Google's internal codebase and includes things like better containers, string utilities, time handling, and synchronization primitives.
Is it a framework, or a set of independent libraries I pick and choose from?It's a collection of independent library components (base, container, strings, time, synchronization, etc.) you link individually, not a framework that dictates your architecture.
How do I add it to a project?Use Bazel or CMake, the two officially supported build systems, and follow the Abseil Quickstart for setting up your dev environment and building a simple binary.
Do I need a C++17 compiler at least?Yes, Abseil requires a compiler compliant with C++17.
Does Abseil follow normal semantic versioning with stable release branches?No. Abseil recommends 'live-at-head', continuously updating to the latest master commit; it does offer Long Term Support Releases with backported fixes for those who can't do that.
Is Abseil meant to replace the C++ standard library?No. Abseil explicitly says it is not a competitor to the standard library — it fills gaps and offers alternatives for special needs found in Google's codebase.
What's absl::Mutex, and why would I use it over std::mutex?It's Abseil's concurrency primitive from the synchronization library, offered as an alternative to std::mutex along with other synchronization abstractions used in Google's production code.
Does Abseil provide its own error-handling type instead of exceptions?Yes, the status library provides absl::Status and absl::StatusOr as abstractions for error handling.
What are the Swiss table containers?They're Abseil's unordered, high-performance STL-style containers, part of the container library alongside other additional container types.
Creator
abseil
Size
22.9 MB
Stars
18.2K
Age
9y
Commits · 90 Days