Библиотека TypeScript для создания готовых к продакшену приложений с типизированными ошибками, внедрением зависимостей, структурированной конкурентностью и валидацией схем.
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 обновляется ежедневно.
Похожие проекты
Быстрая конкурентная библиотека кеширования для Go с ограничением по памяти, вытеснением по стоимости и допуском записей с помощью TinyLFU.
Header-only библиотека на C++ с быстрыми и экономичными по памяти хеш-таблицами и B-деревьями — альтернативами контейнерам std.
Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.
Библиотека утилит для Go: более 700 вспомогательных функций для строк, срезов, дат и времени, сетей, криптографии и многого другого, вдохновлённая lodash.
Помощник для отладки Python: ic() заменяет print(), показывая имена переменных, выражения и их значения в форматированном выводе с подсветкой синтаксиса.