mirror of
https://github.com/uutils/grep.git
synced 2026-06-10 16:15:11 -07:00
f0ae449d1141aa1a24a75bc2500cbf0e67a5f2ea
Add util/fetch-gnu.sh (downloads the GNU grep 3.12 release tarball from ftp.gnu.org) and util/run-gnu-testsuite.sh, which reuses the gnulib test framework shipped in the tarball (tests/init.sh + init.cfg) and injects the Rust grep binary via PATH, replicating tests/Makefile.am's TESTS_ENVIRONMENT. Each test is classified by its gnulib exit code (0=PASS, 77=SKIP, else FAIL) and results are emitted as JSON. Modelled on ../sed (lightweight PATH-injection runner) and ../coreutils (release-tarball fetch). Current baseline: 61 pass / 39 fail / 28 skip of 128 tests -- the failures quantify the remaining GNU-compatibility gap.
Grep, now in Rust
A Rust implementation of GNU Grep. This project is an initial release and may contain bugs.
Building
Download Rust at: https://rustup.rs/
# Check out this repository
git clone https://github.com/uutils/grep
cd grep
# Build a release version
cargo build --release
# Run!
./target/release/grep --help
# Run tests (if needed; after making changes)
cargo test
Known Issues
- Does not take
LANG, etc., into account for handling file encodings (non-UTF8 matches are treated as binary) - No localization support yet
Contributing
To contribute to uutils, please see CONTRIBUTING.
License
uutils is licensed under the MIT License - see the LICENSE file for details
GNU Grep is licensed under the GPL 3.0 or later.
Languages
Rust
90.9%
Shell
6.4%
Python
2.7%