ts-rs
combine
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.
ts-rs
-
Differential: Type safe RPC that feels like local functions
I agree, and disagree.
I agree that it limits the usage of the tool in a polygot environment. I disagree it's a downside.
The absence of an intermediary language does give some benefits to the first class citizen (in this case, Typescript).
However, there are some other developments [1] which attempt to make the Typescript type system an IDL to allow for better interop.
[1] https://github.com/Aleph-Alpha/ts-rs
- Generate TypeScript interface/type declarations from rust types
-
What’s the best high-level companion to Rust?
Not the person you asked, but I’ve seen people use https://github.com/Aleph-Alpha/ts-rs to generate TS interfaces at compile time for use on the frontend. Saves a bunch of time when scaffolding up a new data model without having to use a custom gRPC plugin or something wonky like that. That makes Rust and TS a pretty powerful pairing IMO.
-
ts-rs - generate typescript type declarations from rust types
[Link]
-
Hey Rustaceans! Got an easy question? Ask here (42/2021)!
Does anyone know how mature ts-rust is? I'm trying to use this with complex types (nested enums etc) and am running into some pain-points, especially when I have types defined across multiple files. Not sure if this is a legitimate limitation, or whether there's just more for me to do in terms of configuration etc.
combine
-
Domain Specific Language embedded in Rust
Combine is also nice to use and actively developed.
-
Hey Rustaceans! Got an easy question? Ask here (9/2022)!
https://crates.io/crates/combine is a decent alternative to Nom. I found it much easier to pick up. I was using it to implement our generalized placeholder syntax in SQLx (which I hope to actually finish at some point): https://github.com/launchbadge/sqlx/blob/a2eda2de2462876a160982e57d73103795e34aa2/sqlx-core/src/placeholders.rs
-
Chumsky, a parser combinator crate that makes writing error-tolerant parsers with recovery easy and fun!
Nice to see support for error recovery with parser combinators! I never got to the point of adding it in combine as I swapped out my language parser(s) to use LALRPOP instead (implementing error recovery for it instead).
-
Hey Rustaceans! Got an easy question? Ask here (42/2021)!
You may want to also look at some of the popular parser combinators like nom and combine. I don't think they do what you are suggesting, though.
What are some alternatives?
typescript-json-schema - Generate json-schema from your Typescript sources
nom - Rust parser combinator framework
rust-analyzer - A Rust compiler front-end for IDEs
pest - The Elegant Parser
typebinder - Exports TS definitions from Rust module
lalrpop - LR(1) parser generator for Rust
card_game
pom - PEG parser combinators using operator overloading without macros.
tsync - Thread Synchronization and message passing in python.
chomp - A fast monadic-style parser combinator designed to work on stable Rust.
schemafy - Crate for generating rust types from a json schema
git-journal - The Git Commit Message and Changelog Generation Framework :book: