| Crates.io | facet |
| lib.rs | facet |
| version | 0.43.2 |
| created_at | 2025-04-06 09:40:29.469658+00 |
| updated_at | 2026-01-23 18:01:18.146969+00 |
| description | Reflection for Rust: introspect types at compile time with metadata for serialization, pretty-printing, CLIs, and more |
| homepage | https://facet.rs |
| repository | https://github.com/facet-rs/facet |
| max_upload_size | |
| id | 1622740 |
| size | 250,650 |
facet provides reflection for Rust: it gives types a SHAPE associated
const with details on the layout, fields, doc comments, attributes, etc.
It can be used for many things, from (de)serialization to pretty-printing, rich debuggers, CLI parsing, reflection in templating engines, code generation, etc.
See https://facet.rs for details.
The main facet crate re-exports symbols from:
Facet] trait and implementations for foreign types (mostly libstd)Shape] struct along with various vtables and the whole [Def] treePtrUninit], [PtrConst], and [Opaque]facet-macrosFacet] derive attribute as a fast/light proc macro powered by unsynnFor struct manipulation and reflection, we have:
Internal crates include:
Various crates live under the https://github.com/facet-rs umbrella, and their repositories are kept somewhat-consistent through facet-dev.
Crates are in various states of progress, buyer beware!
In terms of data formats, we have:
Still adjacent to serialization/deserialization, we have:
As far as utilities go:
And the less developed:
Some crates are developed completely independently from the facet org:
MultiArrayList typeThanks to all individual sponsors:
...along with corporate sponsors:
...without whom this work could not exist.
The facet logo was drawn by Misiasart.
Licensed under either of:
at your option.