Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 18 type-level-programming Open-Source Projects
-
hotscript
A library of composable functions for the type-level! Transform your TypeScript types in any way you want using functions you already know.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
frunk
Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.
-
free-types
A type-level library enabling the creation and the manipulation of type constructors which can be detached from their type parameters. Also referred to as higher kinded types.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
HashedExpression
Type-safe modelling DSL, symbolic transformation, and code generation for solving optimization problems.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
So rust doesn't support variadics, but I have heard some murmurings around the topic. In the meantime, you can still do a lot with recursive tras. The frunk crate makes working with them a lot easier: In this case
That’s just how type programming looks.
Here’s (https://github.com/unional/type-plus/blob/main/packages/type...) a human written example that’s well-factored and uses loads of subtypes to clarify what it’s doing - but it’s still going to read like the black tongue of Mordor to you if you’re not familiar with how this kind of type stuff is structured and used.
And factoring all that stuff out may help readability but it doesn’t help comprehension - try and trace what the actual underlying type definitions for some of those utility types like IdentityEqual<> are actually doing (look at https://github.com/unional/type-plus/blob/main/packages/type...) and realize the rabbit hole runs deep in this stuff.
Project mention: Functions and algorithms implemented purely with TypeScript's type system | news.ycombinator.com | 2023-07-04A tuple does have a upper limit of 10 000 elements, which means that with this approach we can count to 10 000 at most.
Another approach which I tried is to do arithmetics on digits directly, storing digits in a tuple instead, but the code is not as elegant as the tuple one
https://github.com/dqbd/ts-math-evaluate/blob/main/src/math/...
type-level-programming related posts
-
Free-types: Higher kinded types in TypeScript
-
I made a TypeScript library for parsing and evaluating math expressions inside template literal types
-
I made a library for parsing and evaluating math expressions inside template literal types
-
Type-level Bubble Sort in Rust: Part 2
-
Making Illegal States Unrepresentable in TypeScript
-
Explicit empty list type
-
Scala – Linked list with compile time size
-
A note from our sponsor - InfluxDB
www.influxdata.com | 17 May 2024
Index
What are some of the best open-source type-level-programming projects? This list will help you:
Project | Stars | |
---|---|---|
1 | ts-essentials | 3,577 |
2 | hotscript | 3,344 |
3 | frunk | 1,206 |
4 | generic-records | 435 |
5 | type-plus | 353 |
6 | compendium-client | 326 |
7 | free-types | 144 |
8 | membrain | 61 |
9 | o-clock | 49 |
10 | HashedExpression | 42 |
11 | type-natural | 33 |
12 | talk-typelevel-ts | 28 |
13 | sized | 10 |
14 | typed-list | 10 |
15 | ts-math-evaluate | 10 |
16 | singletons-presburger | 6 |
17 | brainfuck-ts-types | 6 |
18 | type-level-sort | 5 |
Sponsored