В последнем обзоре за 2021 год рекомендованы фреймворки и библиотеки с открытым исходным кодом C/C++. Постоянно обновляется.
рамка
Стандартная библиотека Apache C++: представляет собой набор алгоритмов, контейнеров, итераторов и других базовых компонентов.
ASL: Библиотека исходного кода Adobe представляет собой проверенную и переносимую библиотеку исходного кода C++.
Boost: большая коллекция библиотек C++ общего назначения.
BDE: среда разработки от Bloomberg Information Labs.
Cinder: сообщество разработчиков с открытым исходным кодом, которое обеспечивает творческое программирование профессионального качества.
Bxxomfort: легкая библиотека только для заголовков, которая переносит некоторые новые функции C++11 в C++03.
Dlib: универсальная кроссплатформенная библиотека C++, разработанная с использованием контрактного программирования и современных технологий C++.
EASTL: открытая часть EA-STL.
ffead-cpp: среда разработки корпоративных приложений.
Folly: библиотека C++ с открытым исходным кодом, разработанная и используемая Facebook.
JUCE: комплексная библиотека C++ для разработки кроссплатформенного программного обеспечения.
libphenom: платформа событий для создания высокопроизводительных и масштабируемых систем.
LibSourcey: C++11 событийный ввод-вывод для потоковой передачи видео в реальном времени и высокопроизводительных сетевых приложений.
LibU: многоплатформенная библиотека инструментов, написанная на языке C.
Локи: Проектирование библиотеки C++, включая реализацию общих шаблонов проектирования и идиом.
MiLi: небольшая библиотека C++, предназначенная только для заголовков.
openFrameworks: Разработка набора инструментов C++ для творческого кодирования.
Qt: Кросс-платформенное приложение и инфраструктура пользовательского интерфейса.
Причина: кросс-платформенная среда, которая упрощает разработчикам использование Java, .Net и Python, а также удовлетворяет их потребности в производительности и преимуществах C++.
ROOT: набор объектно-ориентированных фреймворков со всеми функциями для очень эффективной обработки и анализа больших объемов данных, используемых ЦЕРН.
STLport: репрезентативная версия STL.
STXXL: стандартная библиотека шаблонов для дополнительных больших наборов данных.
Ultimate++: кроссплатформенная среда быстрой разработки приложений на C++.
Библиотека шаблонов Windows: библиотека C++ для разработки приложений Windows и компонентов пользовательского интерфейса.
Yomm11: открытые мультиметоды для C++11.
Асинхронный цикл событий
Boost.Asio: кроссплатформенная библиотека C++ для сетевого и низкоуровневого программирования ввода-вывода.
libev: полнофункциональный, высокопроизводительный цикл времени, слегка смоделированный по образцу libevent, но больше не имеющий тех же ограничений, что и libevent, и некоторые из его ошибок были исправлены.
libevent: библиотека уведомлений о событиях
libuv: кроссплатформенный асинхронный ввод-вывод.
libco: coroutine, базовая библиотека ввода-вывода WeChat, которая одновременно поддерживает 800 миллионов пользователей онлайн. Мощный
ntyco: чистая версия платформы сопрограмм на C, код короткий и лаконичный, подходит для встроенных проектов.
libgo: среда параллелизма в стиле Golang, библиотека сопрограмм реализации C++11.
сетевая библиотека
ACE: набор инструментов объектно-ориентированной сети C++
Касабланка: C++ REST SDK
cpp-netlib: коллекция библиотек с открытым исходным кодом для расширенного сетевого программирования.
Dyad.c: асинхронная сеть на C
libCurl: многопротокольная библиотека передачи файлов
Mongoose: очень легкий веб-сервер.
Muduo: неблокирующая сетевая библиотека C++ для многопоточных серверов Linux.
net_skeleton: TCP-клиент/серверная библиотека для C/C++.
WAFer: сверхлегкая программная платформа на базе C для масштабируемых серверных и веб-приложений. Программистам на C рассмотрите node.js.
Onion: библиотека HTTP-сервера на языке C, легкая и простая в использовании.
POCO: библиотека классов C++ для создания сетевых и интернет-приложений, которые могут работать на настольных, серверных, мобильных и встроенных системах.
RakNet: кроссплатформенный сетевой движок C++ с открытым исходным кодом для разработчиков игр.
Tufao: асинхронный веб-фреймворк, построенный на C++ поверх Qt.
WebSocket++: клиент/серверная библиотека веб-сокетов, основанная на C++/Boost Aiso.
ZeroMQ: высокоскоростная модульная библиотека асинхронной связи.
Стек протоколов TCP/IP
f-stack: стек протоколов Tencent с открытым исходным кодом, высокопроизводительный стек протоколов пользовательского режима, основанный на DPDK.
NtyTcp: стек однопоточных протоколов, основанный на реализации netmap, DPDK и rawSocket.
LWIP: оптимизированная версия реализации стека протоколов TCP/IP для платформы RAM.
mTCP: высокомасштабируемый стек протоколов TCP/IP в пользовательском пространстве для многоядерных систем.
4.4BSD: * Стек протоколов nix получен из 4.4BSD.
Платформа веб-приложений
Nginx: высокопроизводительный веб-сервер HTTP и обратного прокси-сервера, который также предоставляет услуги IMAP/POP3/SMTP.
Lighttpd: программное обеспечение веб-сервера с открытым исходным кодом, безопасное, быстрое, совместимое с отраслевыми стандартами, легко адаптируемое и оптимизированное для сред с высокой конфигурацией.
Libmicrohttpd: простой веб-сервер библиотеки C под управлением программного обеспечения GNU. API простой и быстрый.
shttpd: платформа веб-сервера на основе Mongoose.
CivetWeb: предоставляет простой в использовании, мощный встроенный веб-сервер C/C++ с дополнительной поддержкой CGI, SSL и Lua.
CppCMS: Бесплатная высокопроизводительная среда веб-разработки (не CMS).
Crow: микровеб-фреймворк C++ (вдохновленный Python Flask).
Kore: сверхбыстрый и гибкий веб-сервер/фреймворк для веб-приложений, разработанный на C.
libOnion: легкая библиотека, которая помогает создавать веб-серверы с использованием языка программирования C.
QDjango: веб-фреймворк, написанный на C++ и основанный на библиотеке Qt, пытающийся эмулировать API Django, отсюда и название.
Wt: библиотека C++ для разработки веб-приложений.
Стандартная библиотека, алгоритмы и функции
Стандартная библиотека C++: это набор классов и функций, написанных на базовом языке и являющийся частью самого стандарта C++ ISO.
Стандартная библиотека шаблонов: Стандартная библиотека шаблонов, STL
Библиотека C POSIX: спецификация стандартной библиотеки C для систем POSIX.
Комитет по стандартам ISO C++ : Комитет по стандартам C++
аудиотека
FMOD: простой в использовании кроссплатформенный звуковой движок и инструмент для создания игр с аудиоконтентом.
Максимилиан: C++ библиотека цифровой обработки аудио и музыки
OpenAL: аудиобиблиотека с открытым исходным кодом — кроссплатформенный аудио API.
Opus: полностью открытый, бесплатный и универсальный аудиокодек.
Speex: бесплатный кодек, устаревший Opus.
Tonic: простой в использовании и эффективный синтез звука на C++.
Vorbis: Ogg Vorbis — это полностью открытый, непатентованный, бесплатный универсальный формат сжатого аудио.
экология
lisequence: библиотека C++ для представления и анализа данных популяционной генетики.
SeqAn: фокусируется на алгоритмах и структурах данных для анализа последовательностей биологических данных.
Vcflib: библиотека C++ для анализа и обработки файлов VCF.
Wham: Применить ассоциативное тестирование непосредственно к генетическим структурным вариантам в файлах BAM.
сжатие
bzip2: совершенно бесплатное, непатентованное и высококачественное сжатие данных.
doboz: библиотека сжатия для быстрой распаковки
PhysicsFS: библиотека, обеспечивающая абстрактный доступ к различным архивам, в основном используемая в видеоиграх. Дизайн частично был вдохновлен файловой подсистемой Quake3.
KArchive: библиотека для создания, чтения, записи и управления файловыми архивами (такими как zip и tar), которая обеспечивает прозрачное сжатие и распаковку данных с использованием формата gzip через ряд подклассов QIODevice.
LZ4: очень быстрый алгоритм сжатия.
ЛЖАМ: База данных со сжатием без потерь, степень сжатия близка к ЛЗМА, но скорость распаковки значительно выше.
LZMA: стандартный и распространенный метод сжатия для формата 7z.
LZMAT: и его быстрая библиотека сжатия данных без потерь в реальном времени.
miniz: один исходный файл C, библиотека сжатия/расширения, использование API-интерфейса, совместимого с zlib, чтение и запись ZIP-архива, метод записи PNG.
Minizip: последнее исправление ошибок Zlib, поддерживает объединение дисков PKWARE, шифрование AES и буферизацию ввода-вывода.
Snappy: быстрое сжатие и распаковка
ZLib: очень компактная библиотека сжатия потоков данных.
ZZIPlib: обеспечивает доступ для чтения к ZIP-архивам.
Параллелизм
Boost.Compute: вычислительная библиотека C++ на графическом процессоре для OpenCL.
Bolt: библиотека шаблонов C++, оптимизированная для графических процессоров.
C++React: библиотека реактивного программирования для C++11.
Intel TBB: строительные блоки Intel Threading
Libclsph: библиотека моделирования жидкости SPH с графическим ускорением на основе OpenCL.
OpenCL: открытый стандарт параллельного программирования гетерогенных систем.
OpenMP: API OpenMP.
Thrust: библиотека параллельных алгоритмов, аналогичная стандартной библиотеке шаблонов C++.
HPX: универсальная система выполнения C++ для параллельных и распределенных приложений любого размера.
VexCL: библиотека шаблонов векторных выражений C++ для OpenCL/CUDA.
криптография
Bcrypt: кроссплатформенный инструмент шифрования файлов, зашифрованные файлы переносятся на все поддерживаемые операционные системы и процессоры.
BeeCrypt: графическая библиотека быстрого шифрования с мощными функциями и удобным интерфейсом.
Botan: библиотека шифрования C++.
Crypto++: бесплатная библиотека C++ для схем шифрования.
GnuPG: полная реализация стандарта OpenPGP.
GnuTLS: библиотека безопасной связи, реализующая протоколы SSL, TLS и DTLS.
Libgcrypt: графическая библиотека шифрования на основе GnuPG.
Libmcrypt: потокобезопасный, предоставляющий унифицированный API.
LibreSSL: бесплатный протокол SSL/TLS, ответвление OpenSSL 2014 года.
LibTomCrypt: очень комплексный, модульный и портативный инструмент шифрования.
libsodium: библиотека шифрования на основе NaCI, продуманная и простая в использовании.
Nettle: базовая библиотека шифрования
OpenSSL: мощная коммерческая полнофункциональная библиотека шифрования с открытым исходным кодом.
Tiny AES128 на C: небольшая портативная реализация алгоритма шифрования AES128ESB, реализованная на C.
база данных
hiberlite: объектно-реляционное отображение C++ для Sqlite3
Hiredis: очень простая клиентская библиотека C для базы данных Redis.
LevelDB: быстрое хранилище значений ключей
LMDB: встроенное хранилище значений ключей, соответствующее четырем основным элементам базы данных.
MySQL++: оболочка C++, инкапсулирующая C API MySql.
RocksDB: Быстрое хранилище встроенных ключей-значений из Facebook
SQLite: полностью встроенная полнофункциональная реляционная база данных размером всего несколько сотен КБ, которую можно правильно включить в ваш проект.
Redis: база данных с открытым исходным кодом, база данных «ключ-значение», написанная на языке ANSI C, соответствующая протоколу BSD, поддерживающая сеть, может храниться в памяти и быть постоянной.
MongoDB: база данных на основе распределенного файлового хранилища.
отлаживать
Boost.Test: библиотека тестирования Boost.
Подвох: очень стильная собственная среда C++, которая содержит только заголовочные файлы для модульного тестирования, разработки на основе тестирования и разработки на основе поведения.
CppUnit: среда тестирования C++, перенесенная из JUnit.
CTest: тестовый драйвер CMake
GoogleTest: среда тестирования Google C++.
ig-debugheap: многоплатформенная отладочная куча для отслеживания ошибок памяти.
libtap: написание тестов на C
MemTrack: для отслеживания распределения памяти в C++.
MicroProfile: кроссплатформенный профилировщик сетевых попыток.
minUnit: мини-фреймворк модульного тестирования, написанный на C и использующий только два макроса.
Удаленное управление: единый анализатор файлов C для веб-представлений.
UnitTest++: облегченная среда модульного тестирования C++.
контейнер
C++ B-Tree: библиотека шаблонов, которая реализует контейнеры памяти команд на основе структуры данных B-дерева.
Хэш-карты: реализация алгоритма открытой адресной хэш-таблицы на C++
игровой движок
Cocos2d-x: кроссплатформенная среда для создания 2D-игр, интерактивных книг, презентаций и других графических приложений.
Grit: проект сообщества по созданию бесплатного игрового движка для 3D-игр с открытым миром.
lrrlicht: высокопроизводительный #D-движок реального времени с открытым исходным кодом, написанный на языке C++.
PolyCode: платформа с открытым исходным кодом для создания игр, реализованная на C++ (входит в состав Lua).
графическая библиотека
bgfx: библиотека кроссплатформенного рендеринга.
Каир: библиотека 2D-графики, поддерживающая несколько устройств вывода.
Horde3D: небольшой движок 3D-рендеринга и анимации.
Magnum: графический движок C++11 и OpenGL 2D/3D.
Ogre 3D: ориентированный на сцены гибкий движок 3D-рендеринга в реальном времени, написанный на C++ (не игровой движок).
OpenSceneGraph: высокопроизводительный набор инструментов для 3D-графики с открытым исходным кодом.
Panda3D: Фреймворк для 3D-рендеринга и разработки игр, написанный на Python и C++.
Skia: полная библиотека 2D-графики для рисования текста, графики и изображений.
urho3d: кроссплатформенный рендеринг и игровой движок.
обработка изображений
Boost.GIL: Общая библиотека изображений.
CImg: небольшой набор инструментов C++ с открытым исходным кодом для обработки изображений.
FreeImage: библиотека с открытым исходным кодом, поддерживающая распространенные форматы изображений и другие форматы, необходимые современным мультимедийным приложениям.
GDCM: массовая библиотека DICOM
ITK: Кроссплатформенная система анализа изображений с открытым исходным кодом.
Magick++: интерфейс C++ к программе ImageMagick.
OpenCV: библиотека компьютерного зрения с открытым исходным кодом.
tesseract-ocr: механизм оптического распознавания символов
VIGRA: Универсальная библиотека компьютерного зрения C++ для анализа изображений.
ВТК: система бесплатного программного обеспечения с открытым исходным кодом для компьютерной 3D-графики, обработки изображений и визуализации.
интернационализация
gettext: GNU gettext
IBM ICU: библиотеки C, C++ и Java, обеспечивающие поддержку Unicode и глобализации.
libiconv: библиотека преобразования кодировок между различными кодировками символов
Json-библиотека
заморожено: генератор синтаксического анализа Джейсона для C/C++
Jansson: библиотека языка C для кодирования, декодирования и обработки данных Jason.
jbson: библиотека для создания и итерации данных BSON и документов Json на C++14.
JeayeSON: очень надежная библиотека C++ JSON, содержащая только файлы заголовков.
JSON++: анализатор C++ JSON.
json-parser: анализатор JSON, написанный на портативном ANSI C с очень низким объемом памяти.
json11: мини-библиотека JSON C++11.
джут: очень простой синтаксический анализатор C++ JSON.
ibjson: библиотека анализа и печати JSON на языке C, легко интегрируемая с любой моделью.
libjson: облегченная библиотека JSON.
PicoJSON: анализ и сериализация JSON в C++, включая только файлы заголовков.
Qt-Json: простой класс для анализа данных JSON и иерархий QVariant.
QJson: библиотека на основе Qt для сопоставления данных JSON с объектами QVariant.
RepidJSON: быстрый генератор синтаксического анализа JSON для C++, включая API-интерфейсы в стиле SAX и DOM.
YAJL: библиотека быстрого потокового анализа JSON на языке C.
бревно
Boost.Log: разработан как модульный и расширяемый.
easyloggingpp: библиотека журналирования C++, содержащая только один заголовочный файл.
Log4cpp: серия библиотек C++, которые гибко добавляют журналы в файлы, системные журналы, IDSA и другие места.
templog: легкая библиотека C++, которая может добавлять журналирование в ваши приложения C++.
машинное обучение, искусственный интеллект
btsk: инструмент запуска дерева поведения игры
Развивающиеся объекты: основанная на шаблонах библиотека эволюционных вычислений ANSI C++, которая поможет вам очень быстро написать собственные алгоритмы стохастической оптимизации.
Caffe: быстрый фреймворк нейронной сети
CCV: современная библиотека компьютерного зрения, ядром которой является язык C.
mlpack: расширяемая библиотека машинного обучения C++.
OpenCV: библиотека компьютерного зрения с открытым исходным кодом.
Рекомендатор: библиотека языка C для рекомендаций/предложений по продуктам с использованием совместной фильтрации.
SHOGUN: инструмент машинного обучения Shogun
sofia-ml: набор быстрых инкрементальных алгоритмов для машинного обучения.
математическая библиотека
Armadillo: высококачественная библиотека линейной алгебры C++, которая обеспечивает хороший баланс между скоростью и простотой использования. Синтаксис очень похож на MatlAB.
blaze: Высокопроизводительная математическая библиотека C++ для плотных и разреженных алгоритмов.
ceres-solver: библиотека C++ от Google для моделирования и решения больших сложных нелинейных задач наименьших квадратов.
CGal: коллекция эффективных и надежных алгоритмов набора.
CML: бесплатная математическая библиотека C++ для игр и графики.
Eigen: библиотека заголовков шаблонов C++ высокого уровня, охватывающая линейную алгебру, матричные, векторные операции, численные решения и другие связанные алгоритмы.
GMTL: Библиотека шаблонов математической графики — это набор инструментов для широкой реализации базовой графики.
GMP: библиотека C/C++ для высокоточных вычислений, обработки целых чисел со знаком, рациональных чисел и чисел с плавающей запятой.
мультимедийная библиотека
GStreamer: библиотека для построения графиков компонентов обработки мультимедиа.
LIVE555 Streaming Media: библиотека потоковой передачи мультимедиа с использованием протоколов открытых стандартов (RTP/RTCP, RTSP, SIP).
libVLC: медиа-фреймворк libVLC (VLC SDK).
QtAV: платформа воспроизведения мультимедиа, основанная на Qt и FFmpeg, которая поможет вам легко написать проигрыватель.
SDL: Простое прямое управление медиа-слоем.
SFML: быстрая и простая мультимедийная библиотека.
физика
Box2D: физический движок 2D-игр.
Bullet: физический движок 3D-игры.
Бурундук: быстрая и легкая библиотека физики 2D-игр.
LiquidFun: физический движок 2D-игр.
ODE: Open Dynamics Engine — высокопроизводительная библиотека с открытым исходным кодом для моделирования динамики твердого тела.
ofxBox2D: оболочка платформы Box2D с открытым исходным кодом.
Simbody: высокопроизводительная C++ библиотека динамики и физики многотельных тел для моделирования биомеханики суставов и механических систем, таких как транспортные средства, роботы и человеческие скелеты.
Робототехника
MOOS-Ivp: набор модулей C++ с открытым исходным кодом, которые обеспечивают автономность роботизированных платформ, в частности автономных морских транспортных средств.
MRPT: набор инструментов для программирования мобильных роботов
PCL: Point Cloud Library — это независимый крупномасштабный открытый проект для обработки 2D/3D-изображений и облаков точек.
Библиотека робототехники: автономная библиотека C++, включающая динамику роботов, планирование движения и управление.
RobWork: коллекция библиотек C++ для моделирования и управления робототехническими системами.
ROS: Операционная система роботов, которая предоставляет библиотеки и инструменты, помогающие разработчикам программного обеспечения создавать роботизированные приложения.
научные вычисления
FFTW: библиотека языка C для расчета ДПФ в одном или нескольких измерениях.
GSL: Научная библиотека GNU.
сценарий
ChaiScript: простой в использовании встроенный язык сценариев для C++.
Lua: небольшой и быстрый механизм сценариев для файлов конфигурации и основных сценариев приложений.
luacxx: API C++11 для создания привязок Lua.
SWIG: Генератор оболочки/интерфейса, который позволяет вашему коду C++ связываться с JavaScript, Perl, PHP, Python, Tcl и Ruby.
V7: Встроенный движок JavaScript.
V8: быстрый движок JavaScript от Google, который можно встроить в любое приложение C++.
сериализация
Cap'n Proto: формат быстрого обмена данными и система RPC.
хлопья: библиотека сериализации C++11
FlatBuffers: библиотека сериализации с эффективным использованием памяти.
MessagePack: эффективная библиотека двоичной сериализации для C/C++, например JSON.
ProtoBuf: буфер протокола, формат обмена данными Google.
ProtoBuf-c: реализация буфера протокола на языке C.
SimpleBinaryEncoding: кодирование и декодирование информации приложения в двоичном формате для приложений с малой задержкой.
Бережливость: эффективный межъязыковой IPC/RPC, используемый в C++, Java, Python, PHP, C# и многих других языках, первоначально разработанный Facebook.
Видеотека
libvpx: SDK для кодирования и декодирования VP8/VP9.
FFMpeg: Полное кроссплатформенное решение для записи, преобразования видео и аудио потоков.
libde265: открытая реализация видеокодека h.265.
OpenH264: кодек H.364 с открытым исходным кодом.
Theora: бесплатный формат сжатия видео с открытым исходным кодом.
XML-библиотека
Expat: библиотека синтаксического анализа xml, написанная на языке C.
LibXml2: синтаксический анализатор xml C и набор инструментов для Gnome.
LibXml++: синтаксический анализатор xml для C++.
PugiXML: легкий, простой и быстрый анализатор XML для C++, поддерживающий XPath.
RapidXML: попытка создать самый быстрый анализатор XML, сохраняя при этом простоту использования, портативность и разумную совместимость с W3C.
TinyXML: простой и небольшой синтаксический анализатор XML C++, который можно легко интегрировать в другие проекты.
TinyXML2: простой и быстрый синтаксический анализатор C++ CML, который можно легко интегрировать в другие проекты.
TinyXML++: совершенно новый интерфейс TinyXML, который использует многие преимущества C++, шаблоны, исключения и улучшенную обработку исключений.
Xerces-C++: анализатор проверки XML, написанный на подмножестве переносимого C++.
Работа с нулевым воротником
Каждую неделю публикуется информация о наборе вакансий для C/C++ и golang в Пекине, Шанхае, Гуанчжоу, Шэньчжэне, Ханчжоу, Нанкине, Хэфэе, Ухане, Чанше, Чунцине, Чэнду, Сиане и Сямыне в режиме реального времени. Включая школьный набор, социальный набор, должности для стажировок, собеседования, стереотипы и резюме.