go-yara | rure-go | |
---|---|---|
1 | 2 | |
343 | 246 | |
- | - | |
6.0 | 3.0 | |
28 days ago | 5 months ago | |
Go | Go | |
BSD 2-clause "Simplified" License | The Unlicense |
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.
go-yara
-
Best regexp alternative for Go. Benchmarks. Plots.
go-yara - A tool for identifying and classifying malware samples. Although YARA has functionality for templating and regular expressions, it is very limited, so I will not include this library in the upcoming tests.
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...
What are some alternatives?
garble - *fork* of https://github.com/burrowers/garble
ccgo
go-acl - Go support for Access Control Lists
regex-benchmark - It's just a simple regex benchmark of different programming languages.
ACL - A simple but powerful Access Control List manager
hyperscan - High-performance regular expression matching library
BadActor - BadActor.org An in-memory application driven jailer written in Go
gohs - GoLang Binding of HyperScan https://www.hyperscan.io/
certmagic - Automatic HTTPS for any Go program: fully-managed TLS certificate issuance and renewal
go - The Go programming language
ssh-vault - 🌰 encrypt/decrypt using ssh keys
esqueleto - Bare bones, type-safe EDSL for SQL queries on persistent backends.