2017-09-19 22:54:40 +02:00
|
|
|
# Abseil - C++ Common Libraries
|
|
|
|
|
|
|
|
The repository contains the Abseil C++ library code. Abseil is an open-source
|
|
|
|
collection of C++ code (compliant to C++11) designed to augment the C++
|
|
|
|
standard library.
|
|
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
|
|
|
- [About Abseil](#about)
|
|
|
|
- [Codemap](#codemap)
|
|
|
|
- [License](#license)
|
|
|
|
- [Links](#links)
|
|
|
|
|
|
|
|
<a name="about"></a>
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
## Codemap
|
|
|
|
|
|
|
|
Abseil contains the following C++ library components:
|
|
|
|
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`base`](absl/base/) Abseil Fundamentals
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `base` library contains initialization code and other code which
|
|
|
|
all other Abseil code depends on. Code within `base` may not depend on any
|
|
|
|
other code (other than the C++ standard library).
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`algorithm`](absl/algorithm/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `algorithm` library contains additions to the C++ `<algorithm>`
|
|
|
|
library and container-based versions of such algorithms.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`container`](absl/container/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `container` library contains additional STL-style containers.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`debugging`](absl/debugging/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `debugging` library contains code useful for enabling leak
|
|
|
|
checks. Future updates will add stacktrace and symbolization utilities.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`memory`](absl/memory/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `memory` library contains C++11-compatible versions of
|
|
|
|
`std::make_unique()` and related memory management facilities.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`meta`](absl/meta/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `meta` library contains C++11-compatible versions of type checks
|
|
|
|
available within C++14 and C++17 versions of the C++ `<type_traits>` library.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`numeric`](absl/numeric/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `numeric` library contains C++11-compatible 128-bit integers.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`strings`](absl/strings/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `strings` library contains a variety of strings routines and
|
|
|
|
utilities, including a C++11-compatible version of the C++17
|
|
|
|
`std::string_view` type.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`synchronization`](absl/synchronization/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `synchronization` library contains concurrency primitives (Abseil's
|
|
|
|
`absl::Mutex` class, an alternative to `std::mutex`) and a variety of
|
|
|
|
synchronization abstractions.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`time`](absl/time/)
|
2017-09-19 22:54:40 +02:00
|
|
|
<br /> The `time` library contains abstractions for computing with absolute
|
|
|
|
points in time, durations of time, and formatting and parsing time within
|
|
|
|
time zones.
|
2017-09-26 00:35:12 +02:00
|
|
|
* [`types`](absl/types/)
|
|
|
|
<br /> The `types` library contains non-container utility types, like a
|
2017-10-05 22:33:44 +02:00
|
|
|
C++11-compatible version of the C++17 `std::optional` type.
|
2017-09-19 22:54:40 +02:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
The Abseil C++ library is licensed under the terms of the Apache
|
|
|
|
license. See [LICENSE](LICENSE) for more information.
|
|
|
|
|
|
|
|
## Links
|
|
|
|
|
|
|
|
For more information about Abseil:
|
|
|
|
|
2017-09-26 00:35:12 +02:00
|
|
|
* Consult our [Abseil Introduction](http://abseil.io/about/intro)
|
2017-09-19 22:54:40 +02:00
|
|
|
* Read [Why Adopt Abseil](http://abseil.io/about/philosophy) to understand our
|
|
|
|
design philosophy.
|
2017-09-26 00:35:12 +02:00
|
|
|
* Peruse our
|
|
|
|
[Abseil Compatibility Guarantees](http://abseil.io/about/compatibility) to
|
2017-09-19 22:54:40 +02:00
|
|
|
understand both what we promise to you, and what we expect of you in return.
|
|
|
|
|
|
|
|
## Disclaimer
|
|
|
|
|
|
|
|
* This is not an official Google product.
|