Repolode
abseil

abseil/abseil-cpp

Abseil — набор библиотек на C++17 от Google, дополняющий стандартную библиотеку контейнерами, средствами для работы со строками и временем, логированием и синхронизацией.

Звёзды
18,169
Форки
3,186
Открытые issues
306
Последний коммит
39 минут назад

Что это?

Abseil — коллекция библиотек с открытым исходным кодом на C++, написанных с использованием возможностей C++17 и дополняющих стандартную библиотеку C++. Код взят из собственной кодовой базы Google на C++ и используется в повседневной работе компании. В одних областях библиотека закрывает пробелы, которые не охватывает стандарт, а в других предлагает альтернативы, адаптированные к потребностям крупномасштабных систем.

Библиотека состоит из компонентов, таких как base, containers (включая хеш-контейнеры Swiss table), status (absl::Status и absl::StatusOr<T>), strings, time, logging (макросы LOG и CHECK), flags, hashing, random и примитивы синхронизации, например absl::Mutex. Каждый компонент находится в отдельном каталоге в absl/, поэтому разработчики могут подключать только нужные им части.

Abseil собирается с помощью Bazel или CMake и следует политике Google по поддержке компиляторов и платформ для базовых библиотек C++. Проект рекомендует использовать ветку master; кроме того, он выпускает релизы с долгосрочной поддержкой, в которые переносятся исправления серьёзных ошибок.

Ключевые возможности

  • 01Контейнеры, включая хеш-контейнеры Swiss table
  • 02absl::Status и absl::StatusOr<T> для обработки ошибок
  • 03Средства для работы со строками, временем и часовыми поясами, а также генерация случайных чисел
  • 04Макросы логирования LOG и CHECK и синхронизация с помощью absl::Mutex
  • 05Модульные компоненты, которые можно использовать независимо друг от друга
  • 06Сборка с помощью Bazel или CMake

Сценарии использования

  • Добавление обработки ошибок на основе статусов в крупную кодовую базу на C++
  • Использование хеш-контейнеров Swiss table в коде, чувствительном к производительности
  • Замена std::mutex на absl::Mutex в конкурентных сервисах
  • Разбор и форматирование времени в разных часовых поясах в приложениях на C++

В подборках

Темы

Частые вопросы

Что такое abseil-cpp?
Abseil — набор библиотек на C++17 от Google, дополняющий стандартную библиотеку контейнерами, средствами для работы со строками и временем, логированием и синхронизацией. Abseil — коллекция библиотек с открытым исходным кодом на C++, написанных с использованием возможностей C++17 и дополняющих стандартную библиотеку C++. Код взят из собственной кодовой базы Google на C++ и используется в повседневной работе компании. В одних областях библиотека закрывает пробелы, которые не охватывает стандарт, а в других предлагает альтернативы, адаптированные к потребностям крупномасштабных систем.
abseil-cpp можно использовать бесплатно? Какая у него лицензия?
abseil-cpp распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
abseil-cpp всё ещё поддерживается?
Активно поддерживается. Последний коммит в abseil-cpp — 25 окт. 2026 г..
Для чего можно использовать abseil-cpp?
Добавление обработки ошибок на основе статусов в крупную кодовую базу на C++ Использование хеш-контейнеров Swiss table в коде, чувствительном к производительности Замена std::mutex на absl::Mutex в конкурентных сервисах Разбор и форматирование времени в разных часовых поясах в приложениях на C++
Где скачать abseil-cpp?
Исходный код и инструкции по установке — на GitHub: https://github.com/abseil/abseil-cpp

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты