Состоялся выпуск 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.
Աղբյուր: linux.org.ru
