rure-go
go-pcre
rure-go | go-pcre | |
---|---|---|
2 | 2 | |
247 | 42 | |
- | - | |
3.0 | 4.1 | |
5 months ago | about 1 month ago | |
Go | 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.
rure-go
-
Best regexp alternative for Go. Benchmarks. Plots.
rure-go (regex 1.9.3) - uses the Rust regex engine with CGo bindings. The downside is a Rust library dependency that needs to be compiled;
-
Go performance from version 1.2 to 1.18
Totally agreed: almost all users (me/GoAWK included) want performance and don't care nearly as much about simplicity under the hood. Simplicity of implementation is of value for educational purposes, but we could easily have a small, simple 3rd party package for that. Go's regexp package is kinda too complex for a simple educational demonstration and too simple to be fast. :-)
I actually tried BurntSushi's https://github.com/BurntSushi/rure-go (bindings to Rust's regex engine) with GoAWK and it made regex handling 4-5x as fast for many regexes, despite the CGo overhead. However, rure-go (and CGo in general) is a bit painful to build, so I'm not going to use that. Maybe I'll create a branch for speed freaks who want it.
I've also thought of using https://gitlab.com/cznic/ccgo to convert Mawk's fast regex engine to Go source and see how that performs. Maybe on the next rainy day...
go-pcre
-
Best regexp alternative for Go. Benchmarks. Plots.
go-pcre (1.0.0) - provides support for Perl compatible regular expressions using libpcre or libpcre++. JIT compilation is available, making this fork much faster than its counterparts. On the downside, you'll need the libpcre3-dev dependency;
-
GO App has very bad performance vs. NodeJS version. Seeking answers.
If you want faster performance at the cost of potentially decreased safety, look at the fast-performing go examples in the benchmark I linked which bind to `libpcre`. Like this or this.
What are some alternatives?
ccgo
golang-pkg-pcre
regex-benchmark - It's just a simple regex benchmark of different programming languages.
regextest-golang
hyperscan - High-performance regular expression matching library
go-re2 - Drop-in replacement for regexp using re2, for any Go app
gohs - GoLang Binding of HyperScan https://www.hyperscan.io/
regexcmp - A tool to compare different regexp libraries in Go
go - The Go programming language
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.
participle - A parser library for Go