tyrade
type-level-sort
tyrade | type-level-sort | |
---|---|---|
5 | 2 | |
314 | 5 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | about 2 years ago | |
Rust | Rust | |
- | - |
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
type-level-sort
What are some alternatives?
tinyvec - Just, really the littlest Vec you could need. So smol.
meta-typing - 📚 Functions and algorithms implemented purely with TypeScript's type system
frunk - Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.
FileSorterX - FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension. With FileSorterX, you can easily keep your files organized and find what you need quickly.
chalk - An implementation and definition of the Rust trait system using a PROLOG-like logic solver
bounded-registers - Using Type-Level Programming in Rust to Make Safer Hardware Abstractions
typic - Type-safe transmutations between layout-compatible types.
session-types
rust - Empowering everyone to build reliable and efficient software.