hirrolot/datatype99
Algebraic data types for C99 observed · 2026-08-28
Health v2 · maintenance only
28/100
- Activity 11
- Release rhythm 8
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 2121
- days_rel: 534
- days_push: 534
- n_releases_24m: 1
Adoption not part of the score
1508 stars · 28 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
A single-header C99 library providing safe algebraic data types (sum types/tagged unions) with exhaustive pattern matching and compile-time introspection, built on the Metalang99 macro metaprogramming library. It requires no external tools and generates predictable data layouts with compile-time type safety.
Use cases
- define sum types in pure C99
- get exhaustive pattern matching in C
- replace error-prone hand-written tagged unions
- derive serialization for C data types
- model ASTs or binary trees in C
- write type-safe variant types without external code generators
When to choose
- you are writing portable standard C99 and want ADTs with compile-time safety
- you want a header-only solution with no external tooling
- you need guaranteed, documented data layout for generated types
- you are building parsers, interpreters, or protocol implementations in C
When to avoid
- your compiler lacks a conforming C99 preprocessor or chokes on heavy macro expansion
- you want runtime reflection or garbage-collected language ergonomics
- your team avoids preprocessor metaprogramming due to compile-time cost or error readability
Facets
library · maturity stable
type-system parser programming-languages developer-tools c cross-platform algebraic-data-types sum-types tagged-unions pattern-matching metaprogramming c99 header-only variant
1 source
- readme: https://github.com/hirrolot/datatype99 · fetched 2026-08-28 · a0f26dc6f957
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| hirrolot/datatype99 | main | 28 |
For agents
markdown · JSON · MCP: product_card(name="hirrolot/datatype99")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem