Glaze 7.2.0

Состоялся выпуск 7.2.0 высокопроизводительной библиотеки Glaze, предназначенной для чтения и записи JSON с удобными возможностями сериализации и десериализации данных.
Также поддерживаются форматы CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (опционально, для компиляции требуются библиотеки Erlang), YAML 1.2, Stencil и Mustache. Библиотека написана на языке C++ (header-only, стандарт C++23 и выше) и распространяется по лицензии MIT.
Glaze также предоставляет поддержку REPE RPC и сервер и клиент HTTP, используя современные возможности C++, включая автоматическую генерацию REST API, поддержку WebSocket и шифрование SSL/TLS.
Список изменений:
- Glaze теперь поддерживает P2996 «Reflection for C++26». Эта поддержка добавила возможности, недоступные в прежних реализациях рефлексии на этапе компиляции:
- поддержка неагрегатные типов — классы с конструкторами, виртуальными функциями и наследованием просто работают;
- автоматическая сериализация перечислений —
glz::metaне требуется, перечисления автоматически сериализуются в строки; - неограниченное количество членов структуры — без ограничения в 128 членов;
- доступ к приватным членам — рефлексия всех членов, независимо от спецификаторов доступа;
- используются стандартные возможности
std::meta— без специфичных для компилятора хаков; - поддерживаемые компиляторы: GCC 16+ (с опциями
-std=c++26 -freflection) и Bloomberg clang-p2996. Более подробно см. документацию по рефлексии C++26.
- Добавлена возможность конфигурирования размера буфера в
stream_request. - Исправлены ошибки парсинга YAML.
>>> Подробности на GitHub
