> facet is a library for Rust which provides run-time reflection. By annotating your struct with #[derive(facet::Facet)], you get a SHAPE associated type which can be inspected at runtime.<p><a href="https://github.com/facet-rs/facet" rel="nofollow">https://github.com/facet-rs/facet</a><p>> The core crates give types a SHAPE associated constant with their kind, layout, fields, documentation, attributes, and type-specific operations. facet-reflect builds, reads, and mutates values through those shapes while preserving their invariants.<p>> Serialization and integration crates build on that reflection layer: JSON, TOML, YAML, MessagePack, Postcard, ASN.1, XDR, CSV, XML, URL-encoded forms, SQLite, Axum, schema generation, structural diffing, and more.<p>Side by side comparison with SERDE <a href="https://facet.rs/guide/serde/" rel="nofollow">https://facet.rs/guide/serde/</a>