# Facet project aims to reduce Rust compilation times via reflection

> **Key takeaway:** The facet project uses type reflection to avoid the heavy monomorphization costs associated with Serde in Rust.

**Published:** 2025-12-31T22:00:00+00:00 
**Source:** Faster Than Lime (Systems &amp; Low-Level) 
**Category:** software-engineering 
**Canonical URL:** https://fosswire.org/news/faster-than-lime-systems-low-level-2025-recap-so-many-projec.html 

## Summary
Developer 'Faster Than Lime' has introduced facet, a new Rust project designed to optimize serialization performance and build speeds. Unlike Serde, which relies on heavy generic instantiation, facet uses a 'SHAPE' associated constant to provide type information at runtime. This approach allows for format crates like facet-json and facet-yaml to operate without generics, potentially significantly reducing compilation times.

## Technical approach of facet
- Uses an associated constant called **SHAPE** to describe type structures (enums, structs, etc.).
- Provides **vtables** for collections like lists, maps, and sets.
- Includes metadata for fields, including offsets and their own shapes.
- Implements **Peek** for serialization and reflection-based value construction.
- Aims to eliminate the need for generics in format-specific crates (e.g., **facet-json**, **facet-yaml**) to speed up builds.

## Why it matters
If successful, facet could provide a faster alternative to Serde for large-scale Rust projects where compilation overhead is a bottleneck.