stepchowfun/typical
Data interchange with algebraic data types.
Build with Backblaze B2
SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.
Loading star history...
Where it stands
Rank, growth pace and release cadence relative to everything GStars tracks.
No releases in the last 90 days; the most recent was 112 days ago, with 2 contributors on GitHub.
Gained 74% fewer stars in the last 90 days than in the 90 days before.
Use Cases & Benefits
- Implements a data serialization framework using algebraic data types for defining schemas and generating efficient serialization code in multiple languages.
- Ensures uncompromising type safety combined with forward and backward binary compatibility across schema versions using asymmetric fields.
- Use for building type-safe, version-resilient APIs that require efficient binary message interchange between services in Rust and TypeScript.
- Use for evolving data storage formats where schema changes must maintain compatibility without sacrificing strict type guarantees.
- Use for designing communication protocols that leverage exhaustive pattern matching and safe schema migrations in distributed systems.
Should you depend on it?
License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.
License
MIT
Permissive: commercial use, modification and redistribution are allowed with attribution.
Community files
- README: present
- Contributing guide: present
- Code of conduct: present
Watch-outs
- Owned by an individual account with only 2 contributors on GitHub; plan for bus-factor risk.
General guidance from repository metadata, not legal advice. How we score
From the README
Typical is a data serialization framework. You define data types in a file called a schema, then Typical generates efficient serialization and deserialization code for various languages. The generated code can be used for marshalling messages between services, storing structured data on disk, etc. The compact binary encoding supports forward and backward compatibility between different versions of your schema to accommodate evolving requirements.
Typical can be compared to Protocol Buffers and Apache Thrift. The main difference is that Typical has a more modern type system based on algebraic data types, emphasizing a safer programming style with non-nullable types and exhaustive pattern matching. You'll feel at home if you have experience with languages that embrace this style, such as Rust and Haskell. Typical proposes a new solution ("asymmetric" fields) to the classic problem of how to safely add or remove fields in record types without breaking compatibility. The concept of asymmetric fields also solves the dual problem of how to preserve compatibility when adding or removing cases in sum types.
Daily snapshots
Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots
Forks
14+2
Open issues
6+0
Compared with peers in Backend
Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth
| Repository | Stars | +7d | Health | Last release |
|---|---|---|---|---|
| anthropics/skills | 187.8K | +2.9K | 15 | — |
| DuarteSantos8/openGym | 19.7K | +2.4K | 60 | 2 days ago |
| shiyu-coder/Kronos | 47.0K | +2.3K | 16 | — |
| NationalSecurityAgency/ghidra | 98.2K | +2.3K | 64 | 14 days ago |
| microsoft/VibeVoice | 56.0K | +1.1K | 29 | — |
| stepchowfun/typical | 767 | — | 32 | 112 days ago |
| Category median | 56.0K | +2.3K | 29 | — |
Discover Repositories
Search across tracked repositories by name or description