Цель данной страницы — создать исчерпывающий список библиотек C++ с открытым исходным кодом, чтобы при необходимости реализации определённой функциональности не приходилось тратить время на поиски в интернете (
DuckDuckGo
,
Google
,
Bing
и т.д.).
Если вы знаете библиотеку, которая может быть полезна другим, пожалуйста, добавьте ссылку на неё здесь. Нет никаких ограничений на то, что может быть включено, за исключением того, что
исходный код
библиотеки должен быть легко
доступен
для скачивания.
Страница предоставляется «как есть» — с надеждой на полезность, но без каких-либо гарантий. Здесь могут появляться устаревшие, вводящие в заблуждение или неправильные ссылки. Если вы заметили таковые, было бы замечательно, если бы вы исправили ошибку.
Открытый (MIT) кроссплатформенный инструмент сборки, который стремится приблизить удобство Rust Cargo для разработки и упаковки C/C++ проектов, обеспечивая при этом большую глубину и гибкость, особенно в системе сборки.
Скрипт cmake, который добавляет возможности управления зависимостями в cmake. Построен как тонкая оболочка вокруг модуля FetchContent cmake, добавляющая контроль версий, кэширование, простой API и многое другое.
Менеджер пакетов для суперкомпьютеров, Linux и macOS. Облегчает установку научного программного обеспечения. Не привязан к конкретному языку программирования.
Быстрый, современный, кроссплатформенный фреймворк DSP/DFT с открытым исходным кодом для C++17, поддерживает ресемплинг аудио, FIR/IIR фильтры, Biquad (SSE, AVX, AVX-512, ARM NEON). (
Исходный код
)
SoundTouch — кроссплатформенная библиотека обработки аудио с открытым исходным кодом для изменения темпа, высоты тона и скорости воспроизведения аудиопотоков или аудиофайлов. (
Исходный код
)
Быстрый инструментарий для распознавания речи, написанный полностью на C++ и использующий тензорную библиотеку ArrayFire и библиотеку машинного обучения flashlight для максимальной эффективности.
Chromaprint - это библиотека аудио-отпечатков, предназначенная для идентификации почти идентичного аудио. Она жертвует точностью и надежностью в пользу производительности поиска. Chromaprint может использовать несколько библиотек FFT - FFmpeg, FFTW3, KissFFT или vDSP. (
Исходный код
)
Клиентская библиотека MusicBrainz (libmusicbrainz), также известная как mb_client, является библиотекой для разработчиков, которые хотят добавить возможности поиска MusicBrainz в свои приложения. Библиотека поддерживает Windows, Linux и Mac OS X (
Исходный код
)
FLAC означает
F
ree
L
ossless
A
udio
C
odec, что означает отсутствие потерь качества при сжатии аудио в FLAC. FLAC выделяется как самый быстрый и наиболее широко поддерживаемый lossless аудиокодек, непроприетарный и свободный от патентов.
C библиотека с C++ обёрткой для чтения и записи файлов с семплированным звуком (например, WAV, AIFF) через единый стандартный интерфейс библиотеки. (
Исходный код
)
Открытая кроссплатформенная библиотека для чтения, записи и манипуляции тегами ID3v1 и ID3v2, а также получения базовой информации из заголовка mp3, такой как битрейт. Однако сейчас мы рекомендуем переходить на
taglib
:)
TagLib Audio Metadata Library — это библиотека для чтения и редактирования метаданных нескольких популярных аудиоформатов: ID3v1, ID3v2 для MP3 файлов, комментариев Ogg Vorbis, а также тегов ID3 и комментариев Vorbis в файлах FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 и ASF. (
Исходный код
)
'Google Performance Tools' включает высокопроизводительную многопоточную реализацию malloc, а также инструменты для бенчмаркинга выделения памяти и использования CPU.
Программный фреймворк Apache Thrift для масштабируемой кросс-языковой разработки сервисов объединяет программный стек с механизмом генерации кода для создания сервисов, которые эффективно и беспрепятственно работают между C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml и Delphi и другими языками. (
Исходный код
)
Кросс-платформенная HTTP-клиентская библиотека с фокусом на удобство использования и скорость, поддерживающая кэширование HTTP-ответов и многое другое.
F
ast
P
rogrammable
N
exus
N
etwork. Высокопроизводительная полностью асинхронная RPC сервисная платформа. Одновременно поддерживает HTTP, WebSocket, TCP и надежный UDP. Поддерживает разработку серверов со сверхвысокой нагрузкой, с соответствующими клиентскими SDK.
C++ фреймворк, включающий быстрый многопоточный HTTP сервер, HTML5 Websockets, SSL, X509 и HTTP аутентификацию, сжатие, cookies и расширенное управление сессиями, IPv4 и IPv6 (CeCILL-C).
СОГЛАШЕНИЕ О ЛИЦЕНЗИИ НА БЕСПЛАТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ CeCILL-C
Мультиплатформенный C++ фреймворк для сетевого сниффинга, анализа и создания пакетов. Предоставляет C++ обёртки для многих популярных движков обработки пакетов, таких как libpcap, Npcap, WinPcap, DPDK, AF_XDP и PF_RING. (
Исходный код
)
Кроссплатформенная многофункциональная платформа, предоставляющая асинхронную RESTful функциональность (безопасная коммуникация по HTTP) для приложений на C++14.
**Примечание:** В данном фрагменте нет текста для перевода, так как:
- "TAO" и "CORBA" являются техническими терминами C++/CORBA и не переводятся
- Остальное содержание состоит из HTML-тегов и атрибутов, которые сохраняются без изменений
- Пустые теги `
Предоставляет атомарные типы данных и операции над этими типами данных, а также ограничения упорядочения памяти, необходимые для координации нескольких потоков через атомарные переменные.
Упрощает использование механизмов межпроцессного взаимодействия и синхронизации и предлагает широкий их спектр: shared memory, memory-mapped files, semaphores, mutexes, condition variables and upgradable mutex types, named versions of the synchronization objects, file locking, message queues.
Высокопроизводительная конкурентность для C++. parallel_for, Futures, конвейеры, таймеры, отложенные/периодические задачи и конкурентные структуры данных.
Intel® TBB — это кроссплатформенная библиотека C++ для параллельного программирования с общей памятью и гетерогенных вычислений. Библиотека предоставляет: универсальные параллельные алгоритмы, конкурентные контейнеры, масштабируемый распределитель памяти, планировщик задач с воровством работы и низкоуровневые примитивы синхронизации. (
Исходный код
) (
Документация
)
Модель программирования для написания производительных переносимых HPC приложений, использующая CUDA, HIP, SYCL, HPX, OpenMP и потоки C++ в качестве бэкендов (
Документация
)
Небольшая кроссплатформенная фреймворк для конкурентных и событийно-ориентированных приложений на C++, использующая акторную модель и модель издатель-подписчик.
Библиотека позволяет получать параметры программы, то есть пары (имя, значение) от пользователя, с помощью стандартных методов, таких как командная строка, файл конфигурации и переменные окружения.
Кросс-платформенный (официальный) интерфейс C++ для популярной GUI библиотеки GTK, включая типобезопасные колбэки и комплексный набор виджетов, которые легко расширяются через наследование.
gtkmm
использует STL, включая
string
s, контейнеры и итераторы. Поддерживается UTF8. (
Исходный код
) (
Документация
)
Библиотека позволяет получать параметры программы, то есть пары (имя, значение) от пользователя через стандартные методы, такие как командная строка, файл конфигурации и переменные окружения.
Библиотека C++17 для разбора командной строки, предоставляющая лаконичный декларативный интерфейс с поддержкой подкоманд, валидаторов и возможностью выбора формата опций командной строки GNU, POSIX или X11.
Библиотека, реализующая обработку флагов командной строки. Включает встроенную поддержку стандартных типов, таких как строка, и возможность определения флагов в исходном файле, в котором они используются.
Библиотека C++17, предоставляющая статические привязки C++ с проверкой типов, позволяющая парсить непосредственно в пользовательские структуры данных без выделения памяти библиотекой, режимы push/pull, поддержку аллокаторов, constexpr
**Примечание:** В данном фрагменте HTML нет текста для перевода на русский язык. Единственный текстовый элемент "JOST" является названием проекта/программы и не подлежит переводу согласно требованиям (не переводить C++ специфические термины и текст внутри тегов). Все HTML теги и атрибуты сохранены в оригинальном виде.
**Примечание:** В данном фрагменте HTML нет текста для перевода, кроме названия "JSON++", которое является C++ специфическим термином и не подлежит переводу согласно вашим требованиям. Все HTML теги и атрибуты сохранены в оригинальном виде.
**Примечание:** В данном фрагменте HTML нет текста для перевода, кроме названия проекта "libjson", которое является техническим термином и не подлежит переводу согласно вашим требованиям. Весь остальной контент состоит из HTML-тегов, атрибутов и пустых элементов, которые должны оставаться без изменений.
**Примечание:** В данном фрагменте HTML нет текста для перевода, кроме термина "qjson", который является названием библиотеки C++ и не подлежит переводу согласно требованиям. Весь HTML-код и атрибуты сохранены в оригинальном виде.
Наиболее удобная C++ JSON библиотека в настоящее время. Чтение и запись сложных структур на любом уровне всего одним вызовом функции. Производительность составляет примерно половину от RapidJSON.
Библиотека двунаправленных отображений, которая предоставляет ассоциативные контейнеры, такие как
bimap<X,Y>
, в которых как
X
, так и
Y
могут использоваться в качестве ключа. (
Исходный код
)
Библиотека, реализующая несколько известных контейнеров, включая контейнеры, подобные stdlib, а также рекурсивные контейнеры и новые полезные контейнеры:
flat_map
,
flat_set
,
flat_multimap
,
flat_multiset
,
stable_vector
,
static_vector
,
small_vector
,
devector
. (
Исходный код
)
Библиотека для работы с гетерогенными коллекциями
кортежей
. Предоставляет набор контейнеров (
vector
,
list
,
set
и
map
), а также преобразованное представление их базовых данных, известное как
представления
." (
Исходник
)
Реализация
приоритетных очередей
с большей функциональностью и различными характеристиками производительности, чем в стандартной библиотеке. (
Исходный код
)
Предоставляет контейнеры для хранения
объектов в динамической памяти
в исключительно безопасном режиме и с минимальными накладными расходами. (
Исходный код
)
Соответствующие стандартной библиотеке аллокаторы для статической памяти фиксированного размера и памяти на основе стека + другой соответствующий стандарту аллокатор, позволяющий пользовательское распределение границ
Неупорядоченный контейнер "мешкообразного" типа, который превосходит
std::
контейнеры в сценариях с высокой модификацией, сохраняя при этом действительные указатели на неудалённые элементы независимо от вставок и удалений. Совместим с C++98/11/14/etc. Смотрите также
P0447
(
std::hive
). (
Исходный код
)
Реализация
std::list
, которая жертвует возможностью слияния диапазонов в пользу кэш-дружественности, обеспечивая более быструю вставку, удаление и итерацию. Совместима с C++98/03/11/14/17/20/23/26/etc. (
Исходный код
) (
Документация
)
Расширение и оптимизация идиомы "swap-and-pop"/"move-and-pop" для контейнеров с произвольным доступом для повышения производительности удаления в random_access контейнерах, когда порядок после удаления не важен. Охватывает одиночные, диапазонные и
std::erase_if
-стиль удалений. Совместимо с C++98/11/14/etc. (
Исходный код
)
Реализация variant, совместимая с realtime/embedded-системами (т.е. работает с
-fno-exceptions
/
-fno-rtti
), никогда не бывает пустой, предназначена для C++11. Быстрая, предотвращает множество нежелательных неявных преобразований.
Довольно комплексный, модульный и портативный набор криптографических инструментов, предоставляющий разработчикам обширный набор известных опубликованных блочных шифров, однонаправленных хеш-функций, режимов сцепления, генераторов псевдослучайных чисел, криптографии с открытым ключом и множества других процедур. (
Исходный код
)
Официальная библиотека драйвера C++11 для MongoDB (
Документация
). Она предоставляет оптимизированные API для CRUD операций, индексирования и агрегации. Поддерживая BSON и обладая пулом соединений и механизмами аутентификации, она обеспечивает высокопроизводительные и масштабируемые решения для создания C++ приложений, использующих MongoDB.
Открытая, кроссплатформенная и кроссплатформенная система объектно-реляционного отображения (ORM) для C++. ODB поддерживает реляционные базы данных MySQL, SQLite, PostgreSQL, Oracle и Microsoft SQL Server, а также стандарты языка C++98/03 и C++11.
Библиотека
O
бъектно-
R
еляционного
M
аппинга (ORM) для C++/Qt, поддерживает большинство распространенных баз данных, сериализацию (JSON, бинарную, XML); автономный многопоточный HTTP веб-сервер
Клиент Redis, написанный на C++ 11, поддерживающий Redis Sentinel, Redis Cluster, конвейерную обработку, транзакции, pubsub, пул соединений и интерфейс в стиле STL
Библиотека для работы с базами данных на основе плагинов, которая встраивает SQL-запросы в обычный код C++; поддерживаемые бэкенды включают: DB2, Firebird, MySQL, ODBC (универсальный бэкенд), Oracle, PostgreSQL, SQLite3. (
Исходный код
) (
Документация
)
Промежуточное программное обеспечение C++ для работы с базами данных, поддерживающее множество SQL-систем: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. (
Исх. код
) (
Документация
)
Интерактивный интерпретатор C++, построенный на основе Clang и LLVM для использования RAD, создания скриптов, встраиваемого скриптования и генерации кода во время выполнения. (
Src
)
Простой в использовании, легкий в интеграции и чрезвычайно эффективный парсер математических выражений и механизм вычислений в режиме реального времени. ExprTk поддерживает множество форм функциональной, логической и векторной обработки и легко расширяем.
E
mbedded
T
emplate
L
ibrary - C++03, портативная библиотека шаблонов, оптимизированная для платформ с ограниченными ресурсами (embedded) (
Исходный код
)
S
imple
D
irectMedia
L
ayer: кроссплатформенная (Windows, macOS, Linux, iOS, Android и другие) библиотека низкоуровневого доступа к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через графический API платформы (OpenGL/Direct3D/Metal/Vulkan) (
Doc
) (
Src
)
S
imple and
F
ast
M
ultimedia
L
ibrary; мультиплатформенная (Windows, Linux, macOS и скоро Android & iOS); предоставляет простой интерфейс для упрощения разработки игр и мультимедийных приложений. Состоит из пяти модулей: system, window, graphics (над OpenGL), audio и network.
S
ound,
I
nput, and
G
raphics
I
ntegration
L
ibrary; простая, кроссплатформенная, минималистичная библиотека для работы с текстом, фигурами, вводом, аудио и 2D изображениями. Поддерживаемые платформы: Windows, Linux и Raspberry Pi
The C++ Actor Framework (CAF) is an open-source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more
Networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks
A C++ event library for callbacks, event dispatcher, and event queue. With eventpp you can easily implement signal and slot mechanism, publisher and subscriber pattern, or observer pattern.
Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.
A cross-platform C++20 library for sequence-orientated programming, similar to C++20 ranges, but uses an iteration model based around cursors which is a generalization of array indices. (Doc)
General Utility Library for C++14 from DESY: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. (Src)
A list of *-lite repositories (e.g., span-lite, scope-lite, expected-lite) containing C++98/11 implementations of some of the proposed or already standardized C++17/20/23 library types, such as std::span, std::expected etc).
Tomorrow's C++ Standard Libraries Today! A collection of C++ libraries proposed for standardization, that match with the latest versions of C++ proposals. (Doc)
A modern C++ runtime and developer toolkit with a CLI, build workflow, networking, package registry integration, and modular libraries for building C++ applications
A modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface.
Открытое кроссплатформенное (Linux/Unix/BSD варианты, включая Android и OS X) GPS-ориентированное набор инструментов, такой как демон-переводчик и репликатор для GPS-устройств, AIS-радиостанций и других навигационных сенсоров.
gpsd
в основном написан на C и Python, но также имеет C++ wrapper.
gpsd
повсеместно используется в мобильных встроенных системах. Каждое приложение на Android с определением местоположения косвенно является клиентом
gpsd
. (
Документация
) (
Исходный код
)
Кроссплатформенный модульный GUI-фреймворк на C++20 с реактивными возможностями и масштабируемым, ускоренным на GPU рендерингом. (
Исходный код
), (
Документация
)
Легковесная GUI-библиотека для C++ с минимальными зависимостями, портативная, независимая от рендерера, оптимизированная для использования в приложениях с поддержкой 3D-конвейера.
Кроссплатформенный GUI-тулкит на C++ (Linux, Windows, MacOS), предоставляющий современную GUI-функциональность и поддерживающий 3D-графику через OpenGL/GLUT. Разработан для компактности и модульности. Включает конструктор интерфейсов.
Декларативный GUI-тулкит для создания нативных пользовательских интерфейсов для десктопа, встроенных систем и микроконтроллеров. (
Исходный код
), (
Документация
)
Кроссплатформенный (Windows, GNU/Linux, macOS) фреймворк для быстрой разработки приложений со встроенной IDE. Совместим с C++17. (
Документация
) (
Исходный код
)
Бесплатный и открытый кроссплатформенный (Windows, GNU/Linux, macOS) C++ фреймворк для создания продвинутых GUI-приложений с использованием нативных элементов управления. (
Документация
)
Современный C++17/20 фреймворк для создания консольных, GUI и unit test приложений на Windows, macOS, Linux, iOS и Android. (
Исходный код
) (
Документация
)
Набор библиотек C++ для разработки кроссплатформенных программных приложений. Использует современный идиоматический C++ и бесшовно интегрируется с STL. CopperSpice был создан на основе фреймворка Qt. (
Документация
) (
Исходный код
)
Небольшая библиотека, предназначенная для простого и удобного совместного использования и отображения структур меню через DBus. Работает как с QT, так и с GTK+ и упрощает построение меню.
Кросс-платформенная среда быстрой разработки приложений на C++, ориентированная на производительность программистов. Включает набор библиотек (GUI, SQL и др.) и интегрированную среду разработки. (
Исх.код/Бинарники
)
Мощная кроссплатформенная (Windows, Mac, Linux, iOS, Android, Web) 2D/3D графическая библиотека с поддержкой шейдеров и бэкендами рендеринга: DX, OpenGL, Metal, WebGL, Vulkan и др. (
Документация
)
C++ обертка для
графической библиотеки cairo
, которая представляет собой 2D библиотеку с поддержкой множества выходных устройств: X Window, Quartz, Win32, буферы изображений, PostScript, PDF, SVG, OpenGL (экспериментально).
2D, 3D и изометрический программный рендерер с набором инструментов для графического интерфейса, минимальными зависимостями, разработанный для длительного сопровождения и способный работать без драйверов 3D-ускорения
Ge
neric
G
raphics
L
ibrary (GEGL) — это фреймворк для обработки изображений на основе потока данных, обеспечивающий обработку с плавающей точкой и возможности неразрушающей обработки изображений. (
Исходный код
)
Открытая 2D-графическая библиотека, написанная на C++.
Skia Graphics Engine
используется в Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter и др.
Skia
имеет несколько бэкендов: программная растеризация, вывод (PDF), OpenGL, SVG и др.
Кроссплатформенная библиотека C++14 для общей цифровой обработки изображений, 2D программный растеризатор, неограниченные форматы изображений (
u8
,
u16
,
u32
,
float
,
double
), Пользовательская организация памяти с битовым порядком, Все режимы наложения пикселей Photoshop + 11 дополнительных режимов, Цветовые модели (RGB, HSL, HSV, CMYK, ...), Управляемые цветом конвейеры, Поддержка цветовых пространств (профили icm и независимые от устройства), Оптимизированные алгоритмы с многопоточностью, Оптимизированные алгоритмы с SIMD расширениями (SSE2), Пул изображений и кэши для оптимизаций, Хранение в памяти анимированных последовательностей изображений.
Пользовательская (бесплатная только для некоммерческого использования)
Современная замена GLEW. Абстрагирует различия между некоторыми типами GL контекстов, что иногда делает её проще в использовании, чем GLEW. Используется проектом GTK+ с 2015 года.
The G3D Innovation Engine — это полнофункциональный, открытый, кроссплатформенный (Windows, Linux, Mac OS) 3D игровой движок, написанный на C/C++. G3D используется в коммерческих играх, научных работах, симуляторах и университетских курсах. Он поддерживает аппаратный рендеринг в реальном времени и оффлайн, трассировку лучей, загрузку моделей, линейную алгебру и GP-вычисления на GPU. Поддерживает форматы 3DS, OBJ, MP4, PNG, JPG, MD3 и многие другие, включает нативный OpenGL GUI с поддержкой скинов. (
Исходный код
) (
Документация
)
Полнофункциональный кроссплатформенный движок для 2D и 3D игр на C++17 с графическим редактором, написанным на самом движке, и языком сценариев, вдохновлённым Python.
Небольшой движок рендеринга 3D с открытым исходным кодом. Разрабатывается с целью создания графического движка, который предоставляет потрясающие визуальные эффекты, ожидаемые в играх следующего поколения, будучи легковесным и максимально чистым.
Irrlicht Engine — это open-source движок реального времени для 3D, написанный на C++. Он кроссплатформенный, использует D3D, OpenGL и собственные программные рендереры.
Open-source
3DEngine (бывший Amazon's Lumberyard) — это кроссплатформенный 3D-движок на C++ для создания AAA-игр, кинематографических 3D-миров и высокоточной симуляции. Включает физическую симуляцию, скриптовый движок, сетевые возможности и
многое другое
. (
Документация
)
OGRE - это объектно-ориентированный графический движок рендеринга - многоцелевая библиотека визуализации, подходящая для научной визуализации, игр, симуляции, виртуальной реальности и других графических проектов. Она кроссплатформенная и очень надежная, с хорошей документацией.
OpenSceneGraph - это высокопроизводительный инструментарий для 3D-графики с открытым исходным кодом, используемый разработчиками приложений в таких областях, как визуальное моделирование, игры, виртуальная реальность, научная визуализация и моделирование. (
Исходный код
) (
Документация
)
Visualization Toolkit (VTK) — это программное обеспечение с открытым исходным кодом для обработки и визуализации научных данных. Оно включает современные инструменты для 3D-рендеринга, набор виджетов для 3D-взаимодействия и расширенные возможности 2D-построения графиков.
Низкоуровневый API, который устраняет многие абстракции, присутствовавшие в графических API предыдущего поколения. Это отлично подходит для достижения максимальной производительности, но имеет побочный эффект в виде раскрытия большей сложности для разработчика. К счастью, существует несколько превосходных руководств, которые помогают преодолеть этот барьер и быстро начать продуктивную работу.
Форк открытой библиотеки FreeImage v3.18 для поддержки обновлений кодеков изображений и адаптации для удобного использования. Все оригинальные форматы и плагины сохранены.
Чтение и запись статических, анимированных, многостраничных изображений вместе с их метаданными и ICC-профилями. Возможности конвертации. Нацелена на простоту и скорость.
Набор библиотек для разработки игр на C/C++, включающий загрузчик/записыватель/изменятель размера изображений, растризатор текста шрифтов, типобезопасные контейнеры, декодер ogg vorbis, компрессор DXT в реальном времени, генератор шума Перлина, лексер для предметно-ориентированных языков, быстрый sprintf и многое другое.
Thor Vector Graphics — это легкая портативная библиотека для рисования векторных сцен и анимаций, включая SVG и Lottie. Может свободно использоваться на различных программных платформах и в приложениях для визуализации графического содержимого. (
Src
)
C++ библиотека для визуализации данных на основе
gnuplot
.
Matplot++
может использовать следующие библиотеки: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (
Документация
)
Пакет GNU
plotutils
содержит
libplot
, библиотеку C/C++ для экспорта 2D векторной графики во многих форматах файлов, как векторных, так и растровых.
libplot
может анимировать 2D векторную графику и использует API, подобный Postscript, для экспорта файлов и анимации графики.
ITK - это кроссплатформенная библиотека с открытым исходным кодом, предоставляющая разработчикам обширный набор инструментов для анализа изображений. Разработанная с использованием методологий экстремального программирования, ITK построена на проверенной пространственно-ориентированной архитектуре для обработки, сегментации и регистрации научных изображений в двух, трех или более измерениях.
I
nternational
C
omponents for
U
nicode - это зрелый, широко используемый набор библиотек C/C++, предоставляющий поддержку Unicode и глобализации для программных приложений. (
Исходный код
)
Простая, портативная и самодостаточная библиотека трассировки стека для C++11 и новее. Включает сигнально-безопасные трассировки стека, трассировки стека при исключениях, фрагменты исходного кода и т.д.
Кросс-платформенный API логирования для C++17 (созданный по образцу Java log4j API), обеспечивающий потокобезопасный, гибкий и произвольно детализированный контроль над управлением и конфигурацией логов.
Облегченная библиотека для обработки ошибок в C++11: однозаголовочный формат, без зависимостей, без динамических выделений памяти, может использоваться с обработкой исключений или без, готова для многопоточности. (
Исходный код
)
ALGLIB — это кроссплатформенная (Windows/POSIX/Linux) библиотека для численного анализа и обработки данных. Возможности ALGLIB включают: анализ данных, оптимизацию и нелинейные решатели, интерполяцию, линейную алгебру и линейные решатели, БПФ и многое другое.
Бесплатная (GPL/Персональная/Академическая) и Коммерческая
Кроссплатформенная (Windows/OSX/Linux) библиотека общего назначения для высокопроизводительных вычислений (CPU/GPU/OpenCL/CUDA/GPGPU) в параллельных вычислениях. Области применения ArrayFire: векторные алгоритмы, обработка изображений, компьютерное зрение, обработка сигналов, линейная алгебра, статистика и другие. (
Исходный код
)
Включает несколько компонентов в области математики: утилиты для работы с числами с плавающей запятой, математические константы, статистические распределения и функции, статистика, векторные функционалы - нормы, специальные функции, алгоритмы поиска корней и минимизации, полиномы и рациональные функции, интерполяция, квадратура и дифференцирование, фильтры, функции комплексных чисел, кватернионы, октонионы, утилиты для целых чисел (наибольший общий делитель и наименьшее общее кратное), ряды, рациональные числа и цепные дроби.
Удобный интерфейс класса C++, предлагающий перегруженные функции и операторы.
GMP
— это свободная библиотека C для арифметики произвольной точности, работающая с целыми числами со знаком, рациональными числами и числами с плавающей запятой.
Библиотека для работы в области теории чисел. NTL — это высокопроизводительная, переносимая библиотека C++, предоставляющая структуры данных и алгоритмы для работы со знаковыми целыми числами произвольной длины, а также для векторов, матриц и полиномов над целыми числами и над конечными полями.
PCG — это семейство простых, быстрых, эффективных по памяти и статистически хороших алгоритмов для генерации случайных чисел. В отличие от многих универсальных ГСЧ, их также сложно предсказать.
Продвинутое, комплексное статистическое программное обеспечение: сбор и предварительная обработка данных, статистика, машинное обучение и оптимизация, с открытым исходным кодом на C++.
Библиотека Multiprecision предоставляет целочисленные, рациональные, числа с плавающей запятой и комплексные типы в C++, которые имеют более широкий
диапазон и точность
, чем обычные фундаментальные (встроенные) типы C++.
Библиотека C++11 для
f
ixed-
p
oint
m
ath, которая предоставляет функциональность чисел с плавающей запятой стандартной библиотеки на целых числах. Полезна, если ваша целевая платформа не имеет FPU или требуются детерминированные вычисления.
Шаблонная библиотека C++17/20, предоставляющая замены для нативных арифметических типов (целые/десятичные/фиксированная точка/плавающая точка/позиты/логарифмические/интервальные)
Boost.Geometry (также известная как
G
eneric
G
eometry
L
ibrary, GGL), определяет концепции, примитивы и алгоритмы для решения геометрических задач. Boost.Geometry содержит независимое от размерности, независимое от системы координат и масштабируемое ядро, основанное на концепциях, метафункциях и диспетчеризации тегов. Поддерживаемые алгоритмы: вычисление площади, длины, периметра, центроида, выпуклой оболочки, пересечения (отсечения), принадлежности (точка в полигоне), расстояния, ограничивающего прямоугольника, упрощения, преобразования и многое другое. Библиотека поддерживает числа высокой точности
L
ibrary for
E
fficient
M
odeling and
O
ptimization in
N
etworks реализует общие структуры данных и алгоритмы с фокусом на комбинаторную оптимизацию, графы и сети. (
Документация
)
C++ библиотека шаблонов для линейной алгебры и научных вычислений с обертками для OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU и FFTW. Полезна для ML, распознавания образов, DSP, биоинформатики, статистики, финансов и т.д.
C++ библиотека шаблонных классов, предоставляющая функциональность BLAS уровней 1, 2, 3 для плотных, упакованных и разреженных матриц. Использует шаблоны выражений.
Набор структур данных и процедур для параллельного решения научных приложений, моделируемых дифференциальными уравнениями в частных производных. Поддерживает MPI и GPU через CUDA или OpenCL, а также гибридные MPI-GPU.
Sp
arse
E
igenvalue
C
omputation
T
oolkit as a
R
edesigned
A
RPACK - это библиотека C++ с открытым исходным кодом для задач на собственные значения большого масштаба, построенная поверх библиотеки линейной алгебры
Eigen
(также с открытым исходным кодом и header-only). (
Исходный код
)
Открытая C++ библиотека для моделирования и решения больших сложных задач оптимизации. Это многофункциональная, зрелая и производительная библиотека, которая используется в продакшене Google с 2010 года.
Символьный фреймворк для нелинейной оптимизации и алгоритмического дифференцирования. Поддерживает генерацию C++ кода для символьных выражений и динамическое подключение скомпилированного сгенерированного кода.
Библиотека математических выражений C++ (ExprTk) — это простой в использовании, легко интегрируемый и чрезвычайно эффективный парсер и вычислительный движок математических выражений времени выполнения. ExprTk поддерживает множество форм функциональной, логической и векторной обработки и легко расширяема.
Библиотека для создания интегрированных систем, объединяющих символьные вычисления с более традиционными областями компьютерных наук (такими как ресурсоемкие численные приложения, графические интерфейсы и т.д.) под одной крышей.
Обертка компилятора, которая внедряет символьное выполнение в программу во время компиляции, и связанная с ней библиотека поддержки времени выполнения. По сути, компилятор вставляет код, который вычисляет символьные выражения для каждого значения в программе. Фактическое вычисление происходит через вызовы библиотеки поддержки во время выполнения.
Библиотека символьной математики, которая обеспечивает удобное создание, манипулирование и вычисление математических выражений во время выполнения и на этапе компиляции.
Современный, универсальный и простой в использовании механизм сериализации, разработанный на C++17, основанный на рефлексии во время компиляции. Поддерживаемые форматы: JSON, XML, пользовательские.
Protocol Buffers (также известные как protobuf) - это нейтральный к языку, нейтральный к платформе, расширяемый механизм Google для сериализации структурированных данных, включая компилятор файлов .proto. (
Документация
)
Шаблон функции, который позволяет использовать
std::sort
(и другие функции сортировки с произвольным доступом) с контейнерами без произвольного доступа. Также повышает производительность сортировки больших объектов в контейнерах и массивах с произвольным доступом.
Стабильный шаблон функции сортировки, который превосходит алгоритмы на основе быстрой сортировки, включая
std::sort
, для обратно упорядоченных или частично упорядоченных данных.
Библиотека форматирования с открытым исходным кодом, предоставляющая быструю и безопасную альтернативу C stdio и C++
iostream
s. Прототип для семейства C++20
std::format
.
Набор библиотек C++17 для парсинга и генерации вывода, реализованных как
D
omain
S
pecific
E
mbedded
L
anguages (DSEL) с использованием Expression templates и Template Meta-Programming. Библиотеки Spirit позволяют писать целевую грамматику исключительно на C++. (
Src
) (
Doc
)
Библиотека комбинаторов парсеров на C++17, которая позволяет писать парсер, задавая его на удобном C++ DSL со всей гибкостью и контролем рукописного парсера. Поддерживает UTF-8/16/32. (
Doc
)
P
arsing
E
xpression
G
rammar
T
emplate
L
ibrary — это не зависящая от зависимостей библиотека комбинаторов парсеров C++17 только с заголовками для создания парсеров в соответствии с
Parsing Expression Grammar
(PEG).
Библиотека C++ для создания высокопроизводительных RESTful веб-серверов. Построена на основе
libmicrohttpd
для предоставления простого API разработчикам по созданию HTTP-сервисов на C++.