regex-automata
biscuit
regex-automata | biscuit | |
---|---|---|
5 | 12 | |
349 | 2,406 | |
- | 1.5% | |
0.0 | 0.0 | |
10 months ago | over 1 year ago | |
Rust | Go | |
The Unlicense | BSD 3-clause "New" or "Revised" 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.
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.
biscuit
-
Biscuit 3.0
No, it isn't the third release of a POSIX like OS research written in Go,
https://github.com/mit-pdos/biscuit
-
If I know neither Go or Rust, which do I choose to learn first/only?
But there are other brave people exists like biscuit or gopher-os who can do it :)))
-
Pre-Overengineering
That's something I found in doing a bit of a dive on why ripgrep is so fast at doing a very specific kind of string search workload (Gallant / burntsushi / author of ripgrep is an actual wizard and contributes to Rust's regex engines, for reference). I wrote tiny proof of concepts in a variety of languages, all in my same style -- and sometimes my Go variants were as fast as the equivalent Rust/C (even in release / -O3/2 (every once in a blue moon, O3 makes no diff or is a slight regression in some exec paths)). I eventually found something about benchmarks in a related area, leading to this: https://benhoyt.com/writings/count-words/#performance-results-and-learnings. Somebody on the Go sub even linked me to the Biscuit OS: https://pdos.csail.mit.edu/papers/biscuit.pdf, which, tidbit, has Jon Gjengset (Crust of Rust legend) in the contribs list (https://github.com/mit-pdos/biscuit).
-
What is a "CPU Biscuit"?
https://github.com/mit-pdos/biscuit maybe this
-
Rust: A Critical Retrospective
Go has been used to implement OS kernel code, e.g. in the Biscuit OS from MIT: https://github.com/mit-pdos/biscuit
Of course, the garbage collector did not exactly make it easier - but it's an interesting piece of software.
- Can Go be used for kernel development?
- GOLang in embedded systems
-
GOLang in embedded systems (1 physical threads)
https://github.com/mit-pdos/biscuit says 5% slowdown over C. Garbage collection is going to require some more RAM, generally <=2x though.
- Biscuit operating system written in Go
- The difference between Go and Rust
What are some alternatives?
pomsky - A new, portable, regular expression language
Cosmos - Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!
regex - An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs.
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
grex - A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases
Harbol - Harbol is a collection of data structures and miscellaneous libraries, similar in nature to C++'s Boost, STL, and GNOME's GLib; it is meant to be a smaller and more lightweight collection of data structures, code systems, and convenience software.
rust-memchr - Optimized string search routines for Rust.
gopher-os - A proof of concept OS kernel written in Go
re2 - R interface to Google re2 (C++) regular expression engine
snapbox - Snapshot testing for CLIs
sliceslice-rs - A fast implementation of single-pattern substring search using SIMD acceleration.
usbarmory - USB armory - The open source compact secure computer