Abseil provides its repository as source code, and specifically does not offer binary releases. Instead, we encourage you to either “live at head” (build from the latest version of Abseil), or build against a known, supported branch, known as a Long Term Support (LTS) branch.
If you must provide Abseil within a binary or library (e.g. you are a package manager), we have provided a mechanism to help ensure that any embedded copy of Abseil uses the same copy of Abseil. For more information, consult the Abseil Options Guide.
This document outlines the specifics of what releases we provide, and options for how you build and distribute Abseil within your source code, binary, or library.
Abseil encourages developers to “live at head” but we understand that philosophy may not work for everyone. We are therefore providing snapshots of the Abseil codebase. These snapshots are available as “Long Term Support” (LTS) branches of Abseil, and we intend to provide a new snapshot every 6 months or so.
We pledge to support these LTS snapshots for at least 2 years. If critical bug fixes, such as security issues, require us to change Abseil, we will also change them within any supported LTS snapshot.
NOTE: we don’t want you to think of these snapshots as “versions.” They are simply a snapshot of the codebase at a specific point in time. If you cannot build from source or otherwise live at head, prefer to use the latest LTS branch of Abseil instead.
The set of LTS branches of Abseil is available on our GitHub releases page. Critical fixes to specific LTS branches will be published on this page.
Including Abseil code in your project, as long as it is provided as source code or within your own binary, is relatively straightfoward. You have a few options, listed in order of higher preference:
WORKSPACE
file. Note that if
you build from source and use an unsupported build system, we can’t
support you at the moment, though we are open to adding support if you
contact us or provide us with a pull
request.options.h
file. Consult the
Abseil Options Guide.Including Abseil code in your library requires more care, as that library in turn may be used by other projects that depend on Abseil. In particular, to avoid ODR violations, your library must be built with the same compiler flags as other binaries or libraries using Abseil. See Abseil Compiler Flags. (Building Abseil with the different compiler flags would cause ABI changes between different builds of Abseil.)
absl::
symbols, collisions between potential Abseil “versions” should
not occur, though your library may incur code bloat.options.h
file. Consult the
Abseil Options Guide.