- Notifications
You must be signed in to change notification settings - Fork2.9k
Abseil Common Libraries (C++)
License
abseil/abseil-cpp
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The repository contains the Abseil C++ library code. Abseil is an open-sourcecollection of C++ code (compliant to C++17) designed to augment the C++standard library.
Abseil is an open-source collection of C++ library code designed to augmentthe C++ standard library. The Abseil library code is collected from Google'sown C++ code base, has been extensively tested and used in production, andis the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; inothers, Abseil provides alternatives to the standard for special needswe've found through usage in the Google code base. We denote those casesclearly within the library code we provide you.
Abseil is not meant to be a competitor to the standard library; we'vejust found that many of these utilities serve a purpose within our codebase, and we now want to provide those resources to the C++ community asa whole.
If you want to just get started, make sure you at least run through theAbseil Quickstart. The Quickstartcontains information about setting up your development environment, downloadingthe Abseil code, running tests, and getting a simple binary working.
Bazel andCMake are the officialbuild systems for Abseil.See thequickstart for more informationon building Abseil using the Bazel build system.If you require CMake support, please check theCMake buildinstructions andCMakeQuickstart.
Abseil follows Google'sFoundational C++ SupportPolicy. Seethistablefor a list of currently supported versions compilers, platforms, and buildtools.
Abseil contains the following C++ library components:
base
Thebaselibrary contains initialization code and other code whichall other Abseil code depends on. Code withinbasemay not depend on anyother code (other than the C++ standard library).algorithm
Thealgorithmlibrary contains additions to the C++<algorithm>library and container-based versions of such algorithms.cleanup
Thecleanuplibrary contains the control-flow-construct-like typeabsl::Cleanupwhich is used for executing a callback on scope exit.container
Thecontainerlibrary contains additional STL-style containers,including Abseil's unordered "Swiss table" containers.crcThecrclibrary contains code forcomputing error-detecting cyclic redundancy checks on data.debugging
Thedebugginglibrary contains code useful for enabling leakchecks, and stacktrace and symbolization utilities.flags
Theflagslibrary contains code for handling command line flags forlibraries and binaries built with Abseil.hash
Thehashlibrary contains the hashing framework and default hashfunctor implementations for hashable types in Abseil.log
Theloglibrary containsLOGandCHECKmacros and facilitiesfor writing logged messages out to disk,stderr, or user-extensibledestinations.memory
Thememorylibrary contains memory management facilities that augmentC++'s<memory>library.meta
Themetalibrary contains type checkssimilar to those available in the C++<type_traits>library.numeric
Thenumericlibrary contains 128-bit integer types as well asimplementations of C++20's bitwise math functions.profiling
Theprofilinglibrary contains utility code for profiling C++entities. It is currently a private dependency of other Abseil libraries.random
Therandomlibrary contains functions for generating pseudorandomvalues.status
Thestatuslibrary contains abstractions for error handling,specificallyabsl::Statusandabsl::StatusOr<T>.strings
Thestringslibrary contains a variety of strings routines andutilities.synchronization
Thesynchronizationlibrary contains concurrency primitives (Abseil'sabsl::Mutexclass, an alternative tostd::mutex) and a variety ofsynchronization abstractions.time
Thetimelibrary contains abstractions for computing with absolutepoints in time, durations of time, and formatting and parsing time withintime zones.types
Thetypeslibrary contains non-container utility types.utility
Theutilitylibrary contains utility and helper code.
Abseil recommends users "live-at-head" (update to the latest commit from themaster branch as often as possible). However, we realize this philosophy doesn'twork for every project, so we also provideLong Term SupportReleases to which we backportfixes for severe bugs. See ourreleasemanagement document for more details.
The Abseil C++ library is licensed under the terms of the Apachelicense. SeeLICENSE for more information.
For more information about Abseil:
- Consult ourAbseil Introduction
- ReadWhy Adopt Abseil to understand ourdesign philosophy.
- Peruse ourAbseil Compatibility Guarantees tounderstand both what we promise to you, and what we expect of you in return.
About
Abseil Common Libraries (C++)
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.