È stata rilasciata la versione 7.2.0 ad alte prestazioni della libreria Glaze, progettata per la lettura e scrittura di JSON con comode funzionalità di serializzazione e deserializzazione dei dati.
Supportati anche i formati CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (opzionale, per la compilazione sono necessarie le librerie Erlang), 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à di C++, compresa la generazione automatica di REST API, supporto per WebSocket e crittografia SSL/TLS.
Elenco delle modifiche:
- Glaze ora supporta P2996 «Reflection for C++26». Questo supporto ha aggiunto funzionalità non disponibili nelle precedenti implementazioni 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 – glz::meta non è necessario, le enumerazioni vengono automaticamente serializzate 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 specificatori di accesso;
- utilizzo delle funzionalità standard std::meta – senza hack specifici del compilatore;
- compilatori supportati: GCC 16+ (con le opzioni -std=c++26 -freflection) e Bloomberg clang-p2996. Maggiori dettagli su documentazione riflessione C++26.
- Aggiunta la possibilità di configurare la dimensione del buffer in stream_request.
- Correzioni per errori di parsing YAML.
Fonte: linux.org.ru
