Rust reflection, serialization, deserialization, pretty printing, etc. — the last proc macro you should need
See the codefacet is an ecosystem of Rust crates built on runtime reflection.
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.
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.
Some related projects now live in their own repositories:
The https://facet.rs website has a lot of information about a lot of the ecosystem but it's unfortunately not super reliable as LLMs have been doing too much of the writing (on account on Amos being burned out). This is being slowly repaired. Bear with us.
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:
These crates previously lived in separate repositories and now live in this monorepo:
Some crates are developed completely independently from the facet org:
MultiArrayList typeThanks to all individual sponsors:
...without whom this work could not exist.
The facet logo was drawn by Misiasart.
Licensed under either of:
at your option.
(top 24 of 230)
9,710 followers · starred Dec 2025
1,922 followers · starred Dec 2025
3,460 followers · starred Oct 2025
13,078 followers · starred Apr 2025
Rust
99.3%
Rust reflection, serialization, deserialization, pretty printing, etc. — the last proc macro you should need
See the codefacet is an ecosystem of Rust crates built on runtime reflection.
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.
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.
Some related projects now live in their own repositories:
The https://facet.rs website has a lot of information about a lot of the ecosystem but it's unfortunately not super reliable as LLMs have been doing too much of the writing (on account on Amos being burned out). This is being slowly repaired. Bear with us.
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:
These crates previously lived in separate repositories and now live in this monorepo:
Some crates are developed completely independently from the facet org:
MultiArrayList typeThanks to all individual sponsors:
...without whom this work could not exist.
The facet logo was drawn by Misiasart.
Licensed under either of:
at your option.
(top 24 of 230)
9,710 followers · starred Dec 2025
1,922 followers · starred Dec 2025
3,460 followers · starred Oct 2025
13,078 followers · starred Apr 2025
Rust
99.3%