bounded-registers
tyrade
bounded-registers | tyrade | |
---|---|---|
3 | 5 | |
50 | 309 | |
- | - | |
0.0 | 0.0 | |
over 2 years ago | over 1 year ago | |
Rust | Rust | |
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.
bounded-registers
-
What Is Type-Level Programming?
This sort of thing is something we abused about Rust quite some time ago to make safer interfaces to low-level hardware.
https://blog.auxon.io/2019/10/25/type-level-registers/
-
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
- Writing embedded firmware using Rust
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
What are some alternatives?
hubris - A lightweight, memory-protected, message-passing kernel for deeply embedded systems.
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.
humility - Debugger for Hubris
BitBang_I2C - A software I2C implementation to run on any GPIO pins on any system
chalk - An implementation and definition of the Rust trait system using a PROLOG-like logic solver
esp32 - Peripheral access crate for the ESP32
type-level-sort - im so smart please hire me
typic - Type-safe transmutations between layout-compatible types.