Wydano wersję 7.2.0 wysokowydajnej biblioteki Glaze, przeznaczoną do odczytu i zapisu danych JSON z wygodnymi funkcjonalnościami serializacji i deserializacji danych.
Obsługiwane są również formaty CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (opcjonalnie, potrzebne są biblioteki Erlang do kompilacji), YAML 1.2, Stencil i Mustache. Biblioteka została napisana w C++ (header-only, standard C++23 i wyżej) i jest rozpowszechniana na licencji MIT.
Glaze zapewnia również wsparcie REPE RPC i serwera i klienta HTTP, korzystając z nowoczesnych możliwości C++, w tym automatycznego generowania REST API, wsparcia dla WebSocket oraz szyfrowania SSL/TLS.
Lista zmian:
- Glaze teraz obsługuje P2996 «Reflection for C++26». Ta obsługa dodała funkcjonalności, które były niedostępne w wcześniejszych implementacjach refleksji na etapie kompilacji:
- wsparcie dla typów nieagregatowych – klasy z konstruktorami, wirtualnymi funkcjami i dziedziczeniem działają bez problemów;
- automatyczna serializacja enumeracji – glz::meta nie jest wymagana, enumeracje są automatycznie serializowane do ciągów;
- nieograniczona liczba członków struktury – bez wcześniejszego ograniczenia do 128 członków;
- dostęp do prywatnych członków – refleksja wszystkich członków, niezależnie od specyfikatorów dostępu;
- wykorzystywane są standardowe możliwości std::meta – bez specyficznych dla kompilatora hacków;
- obsługiwane kompilatory: GCC 16+ (z opcjami -std=c++26 -freflection) oraz Bloomberg clang-p2996. Szczegóły dostępne w dokumentację na temat refleksji C++26.
- Dodano możliwość konfiguracji rozmiaru bufora w stream_request.
- Poprawiono błędy analizy YAML.
Źródło: linux.org.ru
