Crates.io | facet |
lib.rs | facet |
version | 0.28.1 |
created_at | 2025-04-06 09:40:29.469658+00 |
updated_at | 2025-08-25 10:29:29.601186+00 |
description | Re-exports the Facet trait and derive macros, along with Shape and all related types |
homepage | |
repository | https://github.com/facet-rs/facet |
max_upload_size | |
id | 1622740 |
size | 263,606 |
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-macros
Facet
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.