parse-rosetta-rs
winnow
parse-rosetta-rs | winnow | |
---|---|---|
10 | 8 | |
76 | 437 | |
- | 12.4% | |
7.7 | 9.6 | |
8 days ago | 7 days ago | |
Python | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
parse-rosetta-rs
-
nom > regex
Comparing performance of parser libraries
-
Show HN: Rust nom parsing Starcraft2 Replays into Arrow for Polars data analysis
For a very rough comparison of parsers, see https://github.com/rosetta-rs/parse-rosetta-rs
-
[RELEASE] Yap 0.9: A light-weight dependency free parser combinator style library
Since this takes a unique approach, would you be interested in adding it to parse-rosetta-rs? Its a repo to help users do a comparative analysis of parser crates, providing some very crude stats to help get them started and allowing them to compare what the APIs look like.
-
Announcing lets_expect - Clean tests in Rust.
The reason I assume its unrelated to combine is that for the json implementation, a previous version of combine built in about the same time as nom
- Practical Parsing in Rust with nom
-
GitHub - epage/parse-benchmarks-rs
I'm tempted to collect all of these benchmark repos into a github org to make them easier to find. So far I know of parser, md, argparse, and template languages.
winnow
-
nom > regex
I truly love Nom, it made parsing really fun. I suggest trying out https://docs.rs/winnow which is a fork of Nom with a lot of nice features, I find it much more usable.
-
What Vale Taught Me About Linear Types, Borrowing, and Memory Safety
I feel like I'll have to read up some more to have the background to fully understand the article but one thing I wanted to point out is a difference between `fn rand_int(rand: &mut Random) -> i64` and `fn rand_int(ran: Random) -> (i64, Random)`, at least in Rust. With the version that moves `Random`, the return type is bigger and may spill over from registers to the stack which may cause a significant slow down, more than the code of Vale's generation check, I suspect.
I've run into this with my parser combinator library, winnow [0], and am considering switching from the nicer functional model of moving to the more imperative model of `&mut` [1].
[0]: https://docs.rs/winnow/latest/winnow/
[1]: https://github.com/winnow-rs/winnow/issues/72
-
`nom-derive` Derive parser from structure definition
Done. For people that want to follow this, here is the link.
-
easy way to produce a parser
winnow, fork of nom
-
winnow = toml_edit + combine + nom
What are your thoughts on https://github.com/winnow-rs/winnow/pull/199 ?
What are some alternatives?
template-benchmarks-rs - Collected benchmarks for templating crates written in Rust
nom - Rust parser combinator framework
rust_serialization_benchmark - Benchmarks for rust serialization frameworks
chumsky - Write expressive, high-performance parsers with ease.
electrolysis - Simple verification of Rust programs via functional purification in Lean 2(!)
lets_expect - Clean tests in Rust
pest - The Elegant Parser
s2prot - Decoder/parser of Blizzard's StarCraft II replay file format (*.SC2Replay)
pdx-tools - View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.
nomicon - The Dark Arts of Advanced and Unsafe Rust Programming
rstest - Fixture-based test framework for Rust