abseil/abseil-cpp
Developer ToolsA C++17 library collection that extends the standard library with containers, strings, logging, synchronization and other production-tested utilities.
What it is
Abseil is an open-source collection of C++17 libraries gathered from Google's internal C++ codebase and used in production there. It is meant to augment, not replace, the standard library: some components fill gaps in the standard, while others offer alternatives tuned for needs found in Google's code (15).
The library is organized into component directories under absl/, covering areas such as base, container (including the unordered "Swiss table" containers), strings, status error handling, log with LOG/CHECK macros, synchronization primitives including absl::Mutex, time, random, hash, numeric, and flags (19). It is aimed at C++ developers who want tested building blocks for infrastructure and application code without writing them from scratch.
Getting started
Bazel and CMake are the official build systems (17). The documented entry point is the Abseil Quickstart, which walks through setting up the development environment, downloading the code, running tests, and getting a simple binary working (16).
- Prepare a supported toolchain. Abseil follows Google's Foundational C++ Support Policy; the linked support matrix lists currently supported compilers, platforms, and build tools (18).
- Install Bazel or CMake, then download the repository.
- Follow the Abseil Quickstart for the Bazel-based flow, or the CMake Quickstart if you build with CMake; the CMake-specific notes live in
CMake/README.md(17). - Build the library and run its tests, then compile a small binary that links against the
absltargets — this is the result the Quickstart describes.
The README gives no CMake or Bazel commands inline, so rely on the linked Quickstart pages rather than guessing build invocations.
Usage constraints
- Code must be C++17-compliant; supported compilers and platforms are governed by the support matrix, not by this repository's README (18).
- Abseil recommends tracking the latest commit on master ("live-at-head"), and also publishes Long Term Support releases that receive backports for severe bugs for projects that cannot follow that model (20).
profilingis currently a private dependency of other Abseil libraries rather than a public component (19).- The code is licensed under Apache 2.0 (21).
HotRepo's take
The repository has a long history — created in 2017 and discussed on Hacker News that September (3) — and its recorded snapshots show a modest but steady star count, with a C++ daily-list position of 4 on 2026-11-14. That kind of record fits a foundational library rather than a fast-moving tool: adoption is driven by projects that link against it, not by daily churn. The 2017 discussion already flagged a real adoption friction: needing Bazel to build the library gave CMake-oriented C++ developers pause (6), and a Google engineer at the time said CMake support was coming for Protocol Buffers' sake (7). Today CMake is documented as an official build system, so that concern is addressed, though the two-toolchain split remains something to plan around. A commenter also highlighted the published "C++ Tips of the Week" as a bonus learning resource (4).
Written by AI from the project's README, updated . The project's own docs are the source of truth.
Hacker News
You might also like
- google/guavaA long-standing Java core library offering collections, concurrency and string utilities for JVM and Android codebases.
- openai/pluginsA curated collection of Codex plugin examples that extend the coding agent with skills, MCP bundles, and workflow surfaces.
- ggml-org/llama.cppRuns LLM and VLM inference locally across CPUs, GPUs and phones without a Python stack.