Se lanzó la versión 7.2.0 de alto rendimiento de la biblioteca Glaze, diseñada para leer y escribir JSON con cómodas capacidades de serialización y deserialización de datos.
También se admiten formatos CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (opcional, se requieren bibliotecas de Erlang para la compilación), YAML 1.2, Stencil y Mustache. La biblioteca está escrita en C++ (solo header, estándar C++23 y superior) y se distribuye bajo la licencia MIT.
Glaze también proporciona soporte REPE RPC y servidor y cliente HTTP, utilizando las modernas capacidades de C++, incluyendo la generación automática de API REST, soporte para WebSocket y encriptación SSL/TLS.
Lista de cambios:
- Glaze ahora soporta P2996 «Reflection for C++26». Este soporte agregó capacidades no disponibles en implementaciones anteriores de reflexión en tiempo de compilación:
- soporte para tipos no agregados: clases con constructores, funciones virtuales y herencia funcionan sin problemas;
- serialización automática de enumeraciones: no se requiere glz::meta, las enumeraciones se serializan automáticamente en cadenas;
- número ilimitado de miembros de estructura: sin la anterior limitación de 128 miembros;
- acceso a miembros privados: reflexión de todos los miembros, independientemente de los especificadores de acceso;
- se utilizan las capacidades estándar de std::meta: sin hackeos específicos del compilador;
- compiladores soportados: GCC 16+ (con las opciones -std=c++26 -freflection) y Bloomberg clang-p2996. Más detalles en la documentación sobre reflexión C++26.
- Se añadió la posibilidad de configurar el tamaño del búfer en stream_request.
- Se corrigieron errores de análisis YAML.
Fuente: linux.org.ru
