È stata rilasciata la versione 7.2.0 ad alte prestazioni una libreria Glaze, destinata alla lettura e scrittura di JSON con funzionalità pratiche di serializzazione e deserializzazione fine.
Supporta anche i formati CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (opzionale, sono necessarie librerie Erlang per la compilazione), YAML 1.2, Stencil e Mustache. La libreria è scritta in C++ (header-only, standard C++23 e superiori) ed è distribuita con licenza MIT.
Glaze offre anche supporto per REPE RPC e server e client HTTP, utilizzando le moderne funzionalità del C++, inclusa la generazione automatica di REST API, il supporto per WebSocket e la crittografia SSL/TLS.
Elenco delle modifiche:
- Glaze ora supporta P2996 «Reflection for C++26». Questo supporto ha aggiunto funzionalità non disponibili nelle implementazioni precedenti della riflessione in fase di compilazione:
- supporto per tipi non aggregati – classi con costruttori, funzioni virtuali e ereditarietà funzionano senza problemi;
- serializzazione automatica delle enumerazioni – non è richiesto glz::meta, le enumerazioni si serializzano automaticamente in stringhe;
- numero illimitato di membri nella struttura – senza il precedente limite di 128 membri;
- accesso ai membri privati – riflessione di tutti i membri, indipendentemente dai modificatori di accesso;
- si utilizzano le funzionalità standard di std::meta – senza hack specifici per il compilatore;
- compilatori supportati: GCC 16+ (con opzioni -std=c++26 -freflection) e Bloomberg clang-p2996. Maggiori dettagli su la documentazione riflessione C++26.
- È stata aggiunta la possibilità di configurare la dimensione del buffer in stream_request.
- Correzioni per errori di parsing YAML.
Fonte: linux.org.ru
