regex-automata
pomsky
regex-automata | pomsky | |
---|---|---|
5 | 19 | |
349 | 1,260 | |
- | 0.2% | |
0.0 | 8.4 | |
10 months ago | 3 months ago | |
Rust | Rust | |
The Unlicense | Apache License 2.0 |
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.
regex-automata
-
regex 1.8.0 released (no-op escapes allowed, (?<name>re) syntax added)
I believe you're the second person to tell me they were confused by this, so there are probably several others confused but didn't say anything. I've added a warning to the top of regex-automata's README.
-
After years of work and discussion, `once_cell` has been merged into `std` and stabilized
For anyone following along at home, we're having a very helpful discussion about the implementation I posted in my sibling comment here: https://github.com/BurntSushi/regex-automata/issues/30
-
Pomsky 0.8 released: A powerful and modern regular expression language
My current technique only gets applied to alternations of simple literals. But the idea is generalizeable and I speculate that it is actually impactful to generalize it.
-
Rust: A Critical Retrospective
(I could use '_ => {}' instead of 'None' to save a few more.)
I do find the 'if let' variant to be a bit easier to read. It's optimizing for a particular and somewhat common case, so it does of course overlap with 'match'. But I don't find this particular overlap to be too bad. It's usually pretty clear when to use one vs the other.
But like I said, I could live without 'if let'. It is not a major quality of life enhancement to me. Neither will its impending extensions. i.e., 'if let pattern = foo && some_booolean_condition {'.
[1]: https://github.com/BurntSushi/regex-automata/blob/fbae906823...
[2]: https://github.com/BurntSushi/regex-automata/blob/fbae906823...
-
Memchr 2.4 now has an implementation of substring search on arbitrary bytes
(The work on regex-automata 0.2 has been underway for over a year now.](https://github.com/BurntSushi/regex-automata/tree/ag/work) There's a lot done, but still a lot more to go. Once that's done, regex proper should be pretty close to a thin layer that glues regex-syntax, regex-automata, memchr and aho-corasick together. I don't currently expect regex to grow any more dependencies than that. And as it is, aho-corasick and memchr are both optional dependencies. Right now, regex-syntax is the only required dependency, but regex-automata will be added to that list.
pomsky
-
How to call from Rust into JS, Java, C#, Ruby and Python?
I started with JS, and my first step was to write a simple script that checks if a regex is valid. I can call this script from Rust, but there's a problem: Starting a nodejs process takes about 100ms, which is not acceptable, especially for fuzzing.
-
How do you guard against stack overflows
I noticed this when a test case of a parser I wrote failed in CI on Windows. I then learned that the default stack size on Windows is only 1 MiB whereas its 8 MiB on Linux if I remember correctly. The parser has a hard-coded recursion limit to prevent stack overflows, which is currently set to 128. However, this limit is lower than necessary on Linux, and might still be too high for some platforms (embedded?)
-
I have to rename Rulex
I was informed that Rulex is a registered trademark and I'm not allowed to use the name for my project. A lawyer contacted me and gave me a week to rename the project, so I have to come up with a different name :(
-
Melody 0.18 (a sane alternative to regular expressions)
In the other discussion, there's also a link to Rulex, which has similar goals but is more concise. Also claims to compile to multiple regex dialects.
-
Fuzzing rust-minidump at Mozilla for Embarrassment and Crashes – Part 2
Something similar happened to me a week ago. Someone emailed me that they found panics in rulex, and then created a PR to fix them. They even explained to me how to create a security advisory on GitHub because the panics could be used to DoS someone. It was very helpful.
-
Where would you put Error enums?
Sorry for not being more specific. Since this is a parser, the span points into the text file that is being parsed, so it's not that relevant for most libraries. Here is the parser, it uses nom parser combinators. Unfortunately, and adding the spans to the errors involves some boilerplate.
-
rulex VS melody - a user suggested alternative
2 projects | 19 Jun 2022
-
Any active open source repos built using Rust that need development ?
I welcome contributions for rulex. It's a medium-sized project that should be fairly easy to understand, and has some "good first issues" :)
-
Hacker News top posts: Jun 10, 2022
Rulex – A new, portable, regular expression language\ (102 comments)
- Rulex – A new, portable, regular expression language
What are some alternatives?
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
melody - Melody is a language that compiles to regular expressions and aims to be more readable and maintainable
grex - A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases
rust-memchr - Optimized string search routines for Rust.
kleenexp - modern regular expression syntax everywhere with a painless upgrade path
biscuit - Biscuit research OS
taffy - A high performance rust-powered UI layout library
re2 - R interface to Google re2 (C++) regular expression engine
sliceslice-rs - A fast implementation of single-pattern substring search using SIMD acceleration.
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!