stepchowfun/typical
View on GitHub ↗ ★ 767 Rust
Data interchange with algebraic data types.
15 mentions on Hacker News by 11 people: 5 stories, 10 comments · first 2022-01-16 · latest 2026-02-10
20082026
-
…IDL try to do this properly by baking evolution semantics directly into its type model, typical ( https://github.com/stepchowfun/typical ) with it's `asymmetric` type label: it makes a field required in the constructor but not the…
comment by mbo · 2026-02-10 · in What functional programmers get wrong about systems -
More direct link to the juicy bit: https://github.com/stepchowfun/typical?tab=readme-ov-file#as... An asymmetric field in a struct is considered required for the writer, but optional for the reader.
comment by rkagerer · 2025-09-06 · in Protobuffers Are Wrong (2018) -
Mentioned above: https://github.com/stepchowfun/typical
comment by akavi · 2025-09-05 · in Protobuffers Are Wrong (2018) -
Not widely used but I like Typical's approach https://github.com/stepchowfun/typical > Typical offers a new solution ("asymmetric" fields) to the classic problem of how to safely add or remove fields in record types without breaking…
comment by jitl · 2025-09-05 · in Protobuffers Are Wrong (2018) -
…proto3, google’s usual schema language, doesn’t have this constraint. Example of one that does: https://github.com/stepchowfun/typical
comment by jitl · 2025-06-14 · in Google Cloud Incident Report – 2025-06-13 -
Typical provides "asymmetric" fields to assist with evolution of types: https://github.com/stepchowfun/typical#asymmetric-fields-can... >To help you safely add and remove required fields, Typical offers an intermediate state between…
comment by oftenwrong · 2023-07-28 · in Cap'n Proto 1.0 -
…the Rust or TypeScript generator and modifying it appropriately. See the contributing guide here: https://github.com/stepchowfun/typical/blob/main/CONTRIBUTIN...
comment by stepchowfun · 2023-05-22 · in Typical: Data interchange with algebraic data types -
…in Content Security Policy-restricted environments. See this section of the README for more info: https://github.com/stepchowfun/typical#javascript-and-typesc...
comment by stepchowfun · 2023-05-22 · in Typical: Data interchange with algebraic data types -
…run into similar trouble when removing them. This section of the README discusses all the pitfalls: https://github.com/stepchowfun/typical#required-optional-and...
comment by stepchowfun · 2023-05-22 · in Typical: Data interchange with algebraic data types -
…that supports sum types. It introduces a mechanism called “asymmetric” fields that’s pretty clever. https://github.com/stepchowfun/typical
comment by vlmutolo · 2023-03-23 · in Protobuffers Are Wrong (2018)