tyrade
meta-typing
tyrade | meta-typing | |
---|---|---|
5 | 7 | |
314 | 1,523 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | over 1 year ago | |
Rust | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tyrade
-
The Better Alternative to Lifetime GATs
But there's no law of nature that says that Rust type-level syntax must suck forever. Maybe Rust 2036 will make writing this stuff a breeze, who knows. But for now, there are some projects that attempt to fill this gap, like Tyrade, which is a Rust DSL (like, a proc macro) that compiles down to bare Rust. It has seen some usage: there's a session types library built on top of Tyrade that is just awesome:
-
Type-level Bubble Sort in Rust: Part 2
A much more practically useful type-level programming in Rust A macro to define type-level logic with value-level syntax in Rust Type-level Brainfuck in Rust "Gentle Intro to Type-level Recursion in Rust" Type-level registers in Rust Type-level quicksort in Scala" Type-level sorting algorithms in Haskell A repo with functions and algorithms implemented purely on types in TypeScript
- Tyrade: Language for type-level programming in Rust
-
Generalizing over Generics in Rust (Part 1.5): Mechanisms
However, if I were starting over, I think I would take the approach of /u/entoros's tyrade project.
-
Generic associated types encode higher-order functions on types
https://github.com/willcrichton/tyrade#more-complex-example-session-and-list-types
meta-typing
-
Functions and algorithms implemented purely with TypeScript's type system
Looks like the arithmetic only supports integers 0 through 10
https://github.com/ronami/meta-typing/blob/master/src/utils/...
-
Type-level Bubble Sort in Rust: Part 2
A much more practically useful type-level programming in Rust A macro to define type-level logic with value-level syntax in Rust Type-level Brainfuck in Rust "Gentle Intro to Type-level Recursion in Rust" Type-level registers in Rust Type-level quicksort in Scala" Type-level sorting algorithms in Haskell A repo with functions and algorithms implemented purely on types in TypeScript
-
TypeScripts Type System is Turing Complete
Here's another repository demonstrating functions and algorithms implemented solely using TypeScript's type system: https://github.com/ronami/meta-typing
What are some alternatives?
tinyvec - Just, really the littlest Vec you could need. So smol.
type-challenges - Collection of TypeScript type challenges with online judge
frunk - Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.
TypeGame - 👾 Sokoban Game in Pure TypeScript Type System
chalk - An implementation and definition of the Rust trait system using a PROLOG-like logic solver
remeda - A utility library for JavaScript and TypeScript.
type-level-sort - im so smart please hire me
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
typic - Type-safe transmutations between layout-compatible types.
session-types
hkt-toolbelt - ✨Functional and composable type utilities