Overview of facet-format
mainfacet-format crate provides prototype types used by the format deserializer. It is designed to facilitate the deserialization process within the facet ecosystem.repository·main·Indexed 25 days ago
https://github.com/facet-rs/facetA comprehensive Rust ecosystem centered around reflection, providing tools for type metadata (SHAPE), safe value manipulation, high-performance serialization, and RPC systems. The repository includes the dibs Postgres toolkit for type-safe table definitions and migrations, the copypatch JIT substrate for executable memory and relocation patching, and support for the Styx DSL including a compliance suite and editor integrations.
facet-format crate provides prototype types used by the format deserializer. It is designed to facilitate the deserialization process within the facet ecosystem.dibs is a PostgreSQL toolkit for Rust built on two core pillars:
Additionally, dibs generates migrations in Rust, allowing you to perform backfills and data fixes using the same mental model used for your application code.
phon is a typed binary exchange format and execution engine designed primarily for Remote Procedure Calling (RPC). It enables programs in different languages to serialize and deserialize values while supporting schema evolution.
Unlike purely self-describing formats (like JSON or CBOR) which are highly observable but wasteful, or purely compact formats (like raw binary structs) which are efficient but fragile, phon uses a schema-based approach. This allows for both observability and compatibility (forwards and backwards) without requiring explicit field numbering.
Key design principles:
The @bearcove/phon-schema package provides the TypeScript representation of Phon schemas and dynamic values. It serves as the shared contract used by the Phon compact engine, codegen output, and conformance tests.
Key capabilities include:
Value types.facet-macro-parse is a parser designed for use within facet derive macros. It acts as a bridge between raw procedural macro input and structured code generation by taking a TokenStream from a derive macro invocation and converting it into parsed type representations defined in the facet-macro-types crate. This allows developers to work with a structured AST (Abstract Syntax Tree) rather than raw tokens when implementing or extending facet's derive macros.dibs-db-schema package provides the core types required to parse dibs query files. It defines the structural schema used to interpret and validate queries within the dibs ecosystem.vox-macros-core is the internal code generation engine used by the Vox service procedural macro system. It provides the shared macro expansion logic and token generation required to create clients, dispatchers, and service detail artifacts.
Note that this crate is primarily internal infrastructure used by the service-definition layer and is designed to work in conjunction with:
vox-service-macros: The public procedural macro crate.vox-macros-parse: The grammar and parser front-end.picante is an async incremental query runtime for Rust. It is designed for Tokio-first pipelines and is inspired by the Salsa query system. It provides a framework for managing data dependencies and incremental computation through several core features:
facet and facet-postcard.The @bearcove/vox-tcp package provides a TCP transport binding for the Vox ecosystem in TypeScript. It implements the Link layer using Node.js TCP streams, enabling network communication for Vox-based applications.
Key capabilities include:
@bearcove/vox-core connection and runtime abstractions.@bearcove/vox-wire for handling protocol payloads.The vox-types crate provides the shared protocol and runtime data model used across the entire Vox stack. It defines the core message and control types that allow different layers of the system to communicate.
Key components include:
styx-lsp-ext provides the protocol types required for Styx LSP (Language Server Protocol) extensions. It defines the RPC (Remote Procedure Call) interface used for communication between a Styx language server and various editor extensions.styx-wasm provides WebAssembly (WASM) bindings for the Styx parser. It allows developers to perform parsing and validation of Styx documents within web browsers and other WASM-compatible runtimes.