kb · c++ third-party libraries

Библиотеки C++C++ libraries

Сторонние библиотеки, без которых не обходятся реальные C++ проекты — начиная с Boost, крупнейшей и старейшей коллекции. В отличие от stl/, здесь версии API привязаны к релизам самих библиотек, а не к стандарту языка.Third-party libraries no real C++ project goes without — starting with Boost, the largest and oldest such collection. Unlike stl/, API versions here are tied to the libraries' own releases, not to the language standard.

БиблиотекиLibraries

кликабельны по готовностиclickable once ready
Boost каркасskeleton

1.87 · december 2024

Крупнейшая коллекция C++ библиотек — асинхронный I/O, контейнеры, метапрограммирование, парсинг и десятки других категорий.The largest collection of C++ libraries — async I/O, containers, metaprogramming, parsing, and dozens of other categories.

~130 модулей в планеmodules planned
fmt не начатоnot started

Типобезопасное форматированиеType-safe formatting

Основа, на которой построен std::format (C++20) — быстрее и функциональнее printf/iostreams.The library std::format (C++20) is built on — faster and more capable than printf/iostreams.

план не составленno plan yet
Abseil не начатоnot started

Утилиты и контейнеры от GoogleGoogle's utilities and containers

absl::flat_hash_map, StatusOr, string_view до C++17 — то, на чём годами держится внутренний код Google.absl::flat_hash_map, StatusOr, string_view before C++17 — what Google's internal code has run on for years.

план не составленno plan yet
GoogleTest / GMock не начатоnot started

Тестирование и мокированиеTesting and mocking

Де-факто стандартный фреймворк unit-тестов для C++ и его встроенная библиотека мок-объектов.The de facto standard C++ unit-test framework and its built-in mock-object library.

план не составленno plan yet
Google Benchmark не начатоnot started

МикробенчмаркиMicrobenchmarking

Статистически корректные замеры производительности — аналог Rust-крейта criterion для C++.Statistically sound performance measurement — the C++ analogue of Rust's criterion crate.

план не составленno plan yet
gRPC + Protobuf см. cross-platformsee cross-platform

RPC и сериализацияand serialization

Кросс-языковой RPC-фреймворк от Google и его формат бинарной сериализации на основе схемы.Google's cross-language RPC framework and its schema-based binary serialization format.

карточка в другом разделеcard lives in another section
nlohmann/json не начатоnot started

JSON для современного C++for modern C++

Самая популярная JSON-библиотека C++ — интуитивный API, header-only, поддержка сериализации произвольных типов.The most popular C++ JSON library — an intuitive API, header-only, supports serializing arbitrary types.

план не составленno plan yet
spdlog не начатоnot started

Быстрое логированиеFast logging

Header-only библиотека логирования поверх fmt — асинхронные логгеры, ротация файлов, sink'и.A header-only logging library built on fmt — async loggers, file rotation, sinks.

план не составленno plan yet
OpenSSL см. cross-platformsee cross-platform

Криптография и TLSCryptography and TLS

Стандарт индустрии для TLS/SSL и криптографических примитивов — старый, вездесущий, с непростым API.The industry standard for TLS/SSL and cryptographic primitives — old, ubiquitous, with a notoriously unfriendly API.

карточка в другом разделеcard lives in another section
Eigen не начатоnot started

Линейная алгебраLinear algebra

Header-only библиотека матриц/векторов с expression templates — стандарт де-факто для C++ в ML/робототехнике/графике.A header-only matrix/vector library using expression templates — the de facto standard for C++ in ML/robotics/graphics.

план не составленno plan yet
Qt не начатоnot started

GUI и кросс-платформенный фреймворкand cross-platform framework

Signals/slots, QML, широкий набор модулей далеко за пределами GUI — сеть, БД, мультимедиа.Signals/slots, QML, a wide module set far beyond GUI — networking, databases, multimedia.

план не составленno plan yet
libcurl не начатоnot started

HTTP/HTTPS-клиентclient

Библиотека передачи данных по URL — де-факто стандарт HTTP-клиента в C/C++, лежит под капотом множества языков.The URL data-transfer library — the de facto HTTP client standard in C/C++, underlying many other languages too.

план не составленno plan yet
Intel TBB (oneTBB) не начатоnot started

Параллельные алгоритмы и планировщик задачParallel algorithms and task scheduling

parallel_for, flow graph, конкурентные контейнеры — библиотека Intel для многопоточности на уровне выше сырых потоков.parallel_for, flow graph, concurrent containers — Intel's library for multithreading above raw-thread level.

план не составленno plan yet
folly не начатоnot started

Утилиты и lock-free структуры от MetaMeta's utilities and lock-free structures

F14 hash-map, Synchronized<T>, futures — внутренняя библиотека Facebook, вынесенная в open source.F14 hash map, Synchronized<T>, futures — Facebook's internal library, released as open source.

план не составленno plan yet
HPX не начатоnot started

Асинхронный многозадачный рантаймAsynchronous many-task runtime

Реализация C++ std concurrency API (futures, async) поверх собственного планировщика лёгких задач для HPC-нагрузок.An implementation of the C++ std concurrency API (futures, async) on its own lightweight-task scheduler, aimed at HPC workloads.

план не составленno plan yet
libcds не начатоnot started

Lock-free контейнерыcontainers

Библиотека lock-free и lock-based структур данных (очереди, хеш-таблицы, стеки) со схемами безопасного освобождения памяти (hazard pointers, RCU).A library of lock-free and lock-based data structures (queues, hash maps, stacks) with safe memory-reclamation schemes (hazard pointers, RCU).

план не составленno plan yet
moodycamel::ConcurrentQueue не начатоnot started

Lock-free очередь общего назначенияGeneral-purpose lock-free queue

Header-only MPMC/SPSC очередь без блокировок — стандартный выбор для hot path между потоками производителя и потребителя.A header-only lock-free MPMC/SPSC queue — the standard choice for a hot path between producer and consumer threads.

план не составленno plan yet
mimalloc не начатоnot started

Аллокатор общего назначенияGeneral-purpose allocator

Аллокатор от Microsoft — компактный, быстрый, снижает фрагментацию и tail latency по сравнению со стандартным malloc.Microsoft's allocator — compact, fast, reduces fragmentation and tail latency compared to the standard malloc.

план не составленno plan yet
jemalloc не начатоnot started

Аллокатор с упором на многопоточностьAllocator focused on multithreading

Аллокатор из FreeBSD, широко используемый Meta/Redis — сильная сторона: масштабирование под высокую многопоточную нагрузку.An allocator from FreeBSD, widely used at Meta/Redis — its strength is scaling under heavy multithreaded load.

план не составленno plan yet
tcmalloc не начатоnot started

Аллокатор от GoogleGoogle's allocator

Thread-caching malloc — часть Perftools/Abseil, промышленный аллокатор, используемый во внутренней инфраструктуре Google.Thread-caching malloc — part of Perftools/Abseil, a production allocator used across Google's internal infrastructure.

план не составленno plan yet
quill не начатоnot started

Асинхронное низколатентное логированиеAsynchronous low-latency logging

Логгер, спроектированный не блокировать hot path — форматирование переносится в отдельный поток, вызывающий поток почти не платит latency.A logger designed not to block the hot path — formatting happens on a background thread, so the calling thread pays almost no latency.

план не составленno plan yet
NanoLog не начатоnot started

Сверхбыстрое логированиеUltra-fast logging

Логгер с наносекундными задержками на запись — форматирование строки откладывается до момента чтения лога, а не записи.A logger with nanosecond-scale write latency — string formatting is deferred until the log is read, not when it's written.

план не составленno plan yet
Catch2 не начатоnot started

Тестирование в современном стилеModern-style testing

BDD-подобный синтаксис (SECTION/GIVEN-WHEN-THEN), header-only, более лёгкий по сравнению с GoogleTest.BDD-style syntax (SECTION/GIVEN-WHEN-THEN), header-only, lighter-weight than GoogleTest.

план не составленno plan yet
doctest не начатоnot started

Самый быстрый в компиляции тест-фреймворкThe fastest-compiling test framework

Header-only, тесты можно оставлять прямо в исходном коде — минимальное влияние на время сборки.Header-only, tests can live right in the source file — minimal impact on build time.

план не составленno plan yet
rr не начатоnot started

Record-and-replay отладчикdebugger

Записывает выполнение программы и позволяет детерминированно воспроизвести его сколько угодно раз — незаменим при отладке редко воспроизводимых race conditions.Records a program's execution and replays it deterministically as many times as needed — indispensable for debugging rarely reproducible race conditions.

план не составленno plan yet
CLI11 не начатоnot started

Парсинг аргументов командной строкиCommand-line argument parsing

Header-only, современный C++11+ API — подкоманды, валидация, автогенерация --help.Header-only, a modern C++11+ API — subcommands, validation, auto-generated --help.

план не составленno plan yet
cxxopts не начатоnot started

Лёгкий парсер аргументовLightweight argument parser

Минималистичная альтернатива CLI11/Boost.Program_options в стиле GNU getopt.A minimalist alternative to CLI11/Boost.Program_options, GNU-getopt style.

план не составленno plan yet
simdjson не начатоnot started

SIMD-ускоренный парсинг JSONaccelerated JSON parsing

Парсит гигабайты JSON в секунду за счёт векторных инструкций — на порядок быстрее nlohmann/json там, где это критично.Parses gigabytes of JSON per second using vector instructions — an order of magnitude faster than nlohmann/json where that matters.

план не составленno plan yet
RapidJSON не начатоnot started

Быстрый JSON-парсер от TencentTencent's fast JSON parser

Header-only, SAX- и DOM-API, in-situ парсинг без лишних копий строк — быстрее nlohmann/json, хотя и с менее удобным API; simdjson обгоняет обе на чтении за счёт SIMD.Header-only, both SAX and DOM APIs, in-situ parsing avoids extra string copies — faster than nlohmann/json though with a less convenient API; simdjson still outpaces both on reads thanks to SIMD.

план не составленno plan yet
yaml-cpp не начатоnot started

YAML-парсерparser

Чтение/запись YAML-конфигов — стандартный выбор там, где конфигурация не в JSON/TOML.Reading/writing YAML configs — the standard choice where configuration isn't in JSON/TOML.

план не составленno plan yet
toml++ не начатоnot started

TOML-парсерparser

Header-only, полностью соответствует спецификации TOML — популярный выбор для конфигов Cargo-подобного стиля.Header-only, fully spec-compliant TOML — a popular choice for Cargo-style configs.

план не составленno plan yet
xsimd не начатоnot started

Портируемые SIMD-обёрткиPortable SIMD wrappers

Единый API поверх SSE/AVX/NEON — пишешь векторный код один раз, компилируется под доступный набор инструкций.A single API over SSE/AVX/NEON — write vector code once, it compiles to whatever instruction set is available.

план не составленno plan yet
Blaze не начатоnot started

Линейная алгебра высокой производительностиHigh-performance linear algebra

Альтернатива Eigen с упором на многопоточность и SIMD, смешанные плотные/разреженные вычисления.An Eigen alternative focused on multithreading and SIMD, mixed dense/sparse computation.

план не составленno plan yet
Armadillo не начатоnot started

Линейная алгебра с синтаксисом как в MATLABMATLAB-like linear algebra syntax

Ещё одна альтернатива Eigen — упор на читаемость синтаксиса, опциональная привязка к LAPACK/BLAS для скорости.Another Eigen alternative — focused on syntax readability, with optional LAPACK/BLAS backing for speed.

план не составленno plan yet
xtensor не начатоnot started

NumPy-подобные N-мерные массивыlike N-dimensional arrays

Header-only тензорные вычисления с broadcasting и lazy evaluation — API и семантика сознательно близки к NumPy, в отличие от Eigen/Blaze/Armadillo, заточенных под 1D/2D линейную алгебру.Header-only tensor computation with broadcasting and lazy evaluation — API and semantics deliberately close to NumPy, unlike Eigen/Blaze/Armadillo, which are built around 1D/2D linear algebra.

план не составленno plan yet
cpp-httplib не начатоnot started

HTTP-сервер и клиентserver and client

Header-only HTTP/HTTPS библиотека — просто поднять сервер или сделать запрос без тяжёлых зависимостей.A header-only HTTP/HTTPS library — spin up a server or make a request without heavy dependencies.

план не составленno plan yet
pybind11 не начатоnot started

C++ ↔ Python биндингиbindings

Header-only библиотека для экспонирования C++ кода в Python — типовые преобразования, наследование, исключения "из коробки".A header-only library for exposing C++ code to Python — type conversions, inheritance, exceptions out of the box.

план не составленno plan yet
Cap'n Proto см. cross-platformsee cross-platform

Zero-copy сериализацияserialization

Схема-based формат без шага декодирования — структура читается напрямую из буфера, быстрее Protobuf на сериализации.A schema-based format with no decode step — the structure is read straight from the buffer, faster than Protobuf on serialization.

карточка в другом разделеcard lives in another section
FlatBuffers см. cross-platformsee cross-platform

Zero-copy сериализация от Googleserialization from Google

Похож на Cap'n Proto концептуально, широко используется в игровой индустрии и мобильных приложениях.Conceptually similar to Cap'n Proto, widely used in game development and mobile apps.

карточка в другом разделеcard lives in another section
Thrift см. cross-platformsee cross-platform

Кросс-языковой RPC от ApacheApache's cross-language RPC

Один из первых фреймворков такого рода (изначально Facebook) — схема, кодогенерация, множество транспортов.One of the earliest frameworks of its kind (originally Facebook) — schema, code generation, many transports.

карточка в другом разделеcard lives in another section
Apache Arrow см. cross-platformsee cross-platform

Колоночный формат в памятиIn-memory columnar format

Формат для обмена табличными данными между процессами/языками без копирования — фундамент современной аналитической экосистемы.A format for exchanging tabular data between processes/languages without copying — the foundation of the modern analytics ecosystem.

карточка в другом разделеcard lives in another section
SQLite см. cross-platformsee cross-platform

Встраиваемая реляционная БДEmbedded relational database

Самая распространённая в мире БД — весь движок в одном файле, транзакции ACID без отдельного сервера.The world's most widely deployed database — the entire engine in one file, ACID transactions without a separate server.

карточка в другом разделеcard lives in another section
RocksDB см. cross-platformsee cross-platform

Встраиваемое key-value хранилищеEmbedded key-value store

LSM-tree хранилище от Meta для write-heavy нагрузок — основа множества БД поверх (CockroachDB, TiKV).Meta's LSM-tree store for write-heavy workloads — the foundation many databases are built on (CockroachDB, TiKV).

карточка в другом разделеcard lives in another section
LMDB см. cross-platformsee cross-platform

Сверхлёгкое key-value хранилищеUltra-lightweight key-value store

Memory-mapped B+tree — минимальные накладные расходы на чтение, часто используется как movement layer в latency-чувствительных системах.A memory-mapped B+tree — minimal read overhead, often used as a movement layer in latency-sensitive systems.

карточка в другом разделеcard lives in another section
Zstandard (zstd) см. cross-platformsee cross-platform

Сжатие данныхData compression

Библиотека сжатия от Facebook — баланс скорости и степени сжатия лучше, чем у zlib/gzip, стала индустриальным стандартом.Facebook's compression library — a better speed/ratio balance than zlib/gzip, now an industry standard.

карточка в другом разделеcard lives in another section
LZ4 см. cross-platformsee cross-platform

Сверхбыстрое сжатиеUltra-fast compression

Приоритет скорости над степенью сжатия — используется там, где сжатие не должно мешать hot path.Prioritizes speed over compression ratio — used where compression must not get in the way of the hot path.

карточка в другом разделеcard lives in another section
RE2 см. cross-platformsee cross-platform

Regex без катастрофического backtrackingRegex without catastrophic backtracking

Библиотека от Google — гарантированное линейное время работы вместо экспоненциального у стандартных backtracking-движков.Google's library — guaranteed linear-time matching instead of the exponential blowups standard backtracking engines can hit.

карточка в другом разделеcard lives in another section
PCRE2 см. cross-platformsee cross-platform

Regex в стиле Perlin Perl style

Классический полнофункциональный regex-движок — используется в Apache, PHP, множестве других проектов.The classic full-featured regex engine — used in Apache, PHP, and many other projects.

карточка в другом разделеcard lives in another section
ICU см. cross-platformsee cross-platform

Юникод и интернационализацияUnicode and internationalization

Нормализация, коллации, локали, работа с часовыми поясами — стандарт там, где нужна серьёзная работа с текстом.Normalization, collation, locales, timezone handling — the standard wherever serious text processing is needed.

карточка в другом разделеcard lives in another section
libsodium см. cross-platformsee cross-platform

Современная криптографияModern cryptography

Альтернатива OpenSSL с простым и сложно неправильно используемым API — шифрование, подписи, хеширование паролей.An OpenSSL alternative with a simple, hard-to-misuse API — encryption, signatures, password hashing.

карточка в другом разделеcard lives in another section
ONNX Runtime см. cross-platformsee cross-platform

Инференс ML-моделейML model inference

Кросс-платформенный движок инференса — обучил модель в Python, инферишь из C++ по единому графу вычислений.A cross-platform inference engine — train a model in Python, run inference from C++ on the same computation graph.

карточка в другом разделеcard lives in another section
libtorch см. cross-platformsee cross-platform

PyTorch C++ API

Тот же движок, что и у Python PyTorch, но без интерпретатора — путь к low-latency инференсу в hot path.The same engine as Python PyTorch, but without the interpreter — a path to low-latency inference on the hot path.

карточка в другом разделеcard lives in another section

оговоркаcaveat

CMake и Conan (система сборки и менеджер пакетов) сознательно не включены сюда карточками — это инструментарий вокруг сборки проекта, а не библиотека, подключаемая в код.CMake and Conan (the build system and package manager) are deliberately not included as cards here — they're tooling around building a project, not a library linked into code.