kb · c++ third-party 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.
Крупнейшая коллекция C++ библиотек — асинхронный I/O, контейнеры, метапрограммирование, парсинг и десятки других категорий.The largest collection of C++ libraries — async I/O, containers, metaprogramming, parsing, and dozens of other categories.
Основа, на которой построен std::format (C++20) — быстрее и функциональнее printf/iostreams.The library std::format (C++20) is built on — faster and more capable than printf/iostreams.
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.
Де-факто стандартный фреймворк unit-тестов для C++ и его встроенная библиотека мок-объектов.The de facto standard C++ unit-test framework and its built-in mock-object library.
Статистически корректные замеры производительности — аналог Rust-крейта criterion для C++.Statistically sound performance measurement — the C++ analogue of Rust's criterion crate.
Кросс-языковой RPC-фреймворк от Google и его формат бинарной сериализации на основе схемы.Google's cross-language RPC framework and its schema-based binary serialization format.
Самая популярная JSON-библиотека C++ — интуитивный API, header-only, поддержка сериализации произвольных типов.The most popular C++ JSON library — an intuitive API, header-only, supports serializing arbitrary types.
Header-only библиотека логирования поверх fmt — асинхронные логгеры, ротация файлов, sink'и.A header-only logging library built on fmt — async loggers, file rotation, sinks.
Стандарт индустрии для TLS/SSL и криптографических примитивов — старый, вездесущий, с непростым API.The industry standard for TLS/SSL and cryptographic primitives — old, ubiquitous, with a notoriously unfriendly API.
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.
Signals/slots, QML, широкий набор модулей далеко за пределами GUI — сеть, БД, мультимедиа.Signals/slots, QML, a wide module set far beyond GUI — networking, databases, multimedia.
Библиотека передачи данных по URL — де-факто стандарт HTTP-клиента в C/C++, лежит под капотом множества языков.The URL data-transfer library — the de facto HTTP client standard in C/C++, underlying many other languages too.
parallel_for, flow graph, конкурентные контейнеры — библиотека Intel для многопоточности на уровне выше сырых потоков.parallel_for, flow graph, concurrent containers — Intel's library for multithreading above raw-thread level.
F14 hash-map, Synchronized<T>, futures — внутренняя библиотека Facebook, вынесенная в open source.F14 hash map, Synchronized<T>, futures — Facebook's internal library, released as open source.
Реализация 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.
Библиотека 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).
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.
Аллокатор от Microsoft — компактный, быстрый, снижает фрагментацию и tail latency по сравнению со стандартным malloc.Microsoft's allocator — compact, fast, reduces fragmentation and tail latency compared to the standard malloc.
Аллокатор из FreeBSD, широко используемый Meta/Redis — сильная сторона: масштабирование под высокую многопоточную нагрузку.An allocator from FreeBSD, widely used at Meta/Redis — its strength is scaling under heavy multithreaded load.
Thread-caching malloc — часть Perftools/Abseil, промышленный аллокатор, используемый во внутренней инфраструктуре Google.Thread-caching malloc — part of Perftools/Abseil, a production allocator used across Google's internal infrastructure.
Логгер, спроектированный не блокировать 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.
Логгер с наносекундными задержками на запись — форматирование строки откладывается до момента чтения лога, а не записи.A logger with nanosecond-scale write latency — string formatting is deferred until the log is read, not when it's written.
BDD-подобный синтаксис (SECTION/GIVEN-WHEN-THEN), header-only, более лёгкий по сравнению с GoogleTest.BDD-style syntax (SECTION/GIVEN-WHEN-THEN), header-only, lighter-weight than GoogleTest.
Header-only, тесты можно оставлять прямо в исходном коде — минимальное влияние на время сборки.Header-only, tests can live right in the source file — minimal impact on build time.
Записывает выполнение программы и позволяет детерминированно воспроизвести его сколько угодно раз — незаменим при отладке редко воспроизводимых race conditions.Records a program's execution and replays it deterministically as many times as needed — indispensable for debugging rarely reproducible race conditions.
Header-only, современный C++11+ API — подкоманды, валидация, автогенерация --help.Header-only, a modern C++11+ API — subcommands, validation, auto-generated --help.
Минималистичная альтернатива CLI11/Boost.Program_options в стиле GNU getopt.A minimalist alternative to CLI11/Boost.Program_options, GNU-getopt style.
Парсит гигабайты JSON в секунду за счёт векторных инструкций — на порядок быстрее nlohmann/json там, где это критично.Parses gigabytes of JSON per second using vector instructions — an order of magnitude faster than nlohmann/json where that matters.
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.
Чтение/запись YAML-конфигов — стандартный выбор там, где конфигурация не в JSON/TOML.Reading/writing YAML configs — the standard choice where configuration isn't in JSON/TOML.
Header-only, полностью соответствует спецификации TOML — популярный выбор для конфигов Cargo-подобного стиля.Header-only, fully spec-compliant TOML — a popular choice for Cargo-style configs.
Единый API поверх SSE/AVX/NEON — пишешь векторный код один раз, компилируется под доступный набор инструкций.A single API over SSE/AVX/NEON — write vector code once, it compiles to whatever instruction set is available.
Альтернатива Eigen с упором на многопоточность и SIMD, смешанные плотные/разреженные вычисления.An Eigen alternative focused on multithreading and SIMD, mixed dense/sparse computation.
Ещё одна альтернатива Eigen — упор на читаемость синтаксиса, опциональная привязка к LAPACK/BLAS для скорости.Another Eigen alternative — focused on syntax readability, with optional LAPACK/BLAS backing for speed.
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.
Header-only HTTP/HTTPS библиотека — просто поднять сервер или сделать запрос без тяжёлых зависимостей.A header-only HTTP/HTTPS library — spin up a server or make a request without heavy dependencies.
Header-only библиотека для экспонирования C++ кода в Python — типовые преобразования, наследование, исключения "из коробки".A header-only library for exposing C++ code to Python — type conversions, inheritance, exceptions out of the box.
Схема-based формат без шага декодирования — структура читается напрямую из буфера, быстрее Protobuf на сериализации.A schema-based format with no decode step — the structure is read straight from the buffer, faster than Protobuf on serialization.
Похож на Cap'n Proto концептуально, широко используется в игровой индустрии и мобильных приложениях.Conceptually similar to Cap'n Proto, widely used in game development and mobile apps.
Один из первых фреймворков такого рода (изначально Facebook) — схема, кодогенерация, множество транспортов.One of the earliest frameworks of its kind (originally Facebook) — schema, code generation, many transports.
Формат для обмена табличными данными между процессами/языками без копирования — фундамент современной аналитической экосистемы.A format for exchanging tabular data between processes/languages without copying — the foundation of the modern analytics ecosystem.
Самая распространённая в мире БД — весь движок в одном файле, транзакции ACID без отдельного сервера.The world's most widely deployed database — the entire engine in one file, ACID transactions without a separate server.
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).
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.
Библиотека сжатия от Facebook — баланс скорости и степени сжатия лучше, чем у zlib/gzip, стала индустриальным стандартом.Facebook's compression library — a better speed/ratio balance than zlib/gzip, now an industry standard.
Приоритет скорости над степенью сжатия — используется там, где сжатие не должно мешать hot path.Prioritizes speed over compression ratio — used where compression must not get in the way of the hot path.
Библиотека от Google — гарантированное линейное время работы вместо экспоненциального у стандартных backtracking-движков.Google's library — guaranteed linear-time matching instead of the exponential blowups standard backtracking engines can hit.
Классический полнофункциональный regex-движок — используется в Apache, PHP, множестве других проектов.The classic full-featured regex engine — used in Apache, PHP, and many other projects.
Нормализация, коллации, локали, работа с часовыми поясами — стандарт там, где нужна серьёзная работа с текстом.Normalization, collation, locales, timezone handling — the standard wherever serious text processing is needed.
Альтернатива OpenSSL с простым и сложно неправильно используемым API — шифрование, подписи, хеширование паролей.An OpenSSL alternative with a simple, hard-to-misuse API — encryption, signatures, password hashing.
Кросс-платформенный движок инференса — обучил модель в Python, инферишь из C++ по единому графу вычислений.A cross-platform inference engine — train a model in Python, run inference from C++ on the same computation graph.
Тот же движок, что и у 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.
оговорка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.