De release van 7.2.0 heeft plaatsgevonden hoge prestaties bibliotheek Glaze, bedoeld voor het lezen en schrijven van JSON met handige functies serialisatie en deserialisatie gegevens.
Daarnaast worden CSV-indelingen ondersteund, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (optioneel, voor compilatie zijn Erlang-bibliotheken vereist), YAML 1.2, Stencil en Mustache. De bibliotheek is geschreven in C++ (header-only, standaard C++23 en hoger) en wordt verspreid onder de MIT-licentie.
Glaze biedt ook ondersteuning voor REPE RPC en HTTP-server en -client, met behulp van moderne C++-mogelijkheden, inclusief automatische generatie van REST API, ondersteuning voor WebSocket en SSL/TLS-encryptie.
Wijzigingenlijst:
- Glaze ondersteunt nu P2996 «Reflection for C++26». Deze ondersteuning heeft functies toegevoegd die niet beschikbaar waren in eerdere implementaties van reflectie tijdens de compilatiefase:
- ondersteuning voor niet-aggregeerde types – klassen met constructeurs, virtuele functies en overerving werken gewoon;
- automatische serialisatie van enumeraties – glz::meta is niet nodig, enumeraties worden automatisch naar strings geserialiseerd;
- ongelimiteerd aantal structleden – zonder de eerdere beperking van 128 leden;
- toegang tot privéleden – reflectie van alle leden, ongeacht toegangsspecifiers;
- standaardmogelijkheden van std::meta worden gebruikt – zonder compiler-specifieke hacks;
- ondersteunde compilators: GCC 16+ (met opties -std=c++26 -freflection) en Bloomberg clang-p2996. Voor meer informatie zie documentatie over reflectie in C++26.
- Er is een mogelijkheid toegevoegd om de buffergrootte in stream_request te configureren.
- Fouten in YAML-parsing zijn verholpen.
Bron: linux.org.ru
