From: Deepesh Varatharajan <[email protected]>

ripgrep is a fast, line-oriented search tool written in Rust.
Add recipe for the latest release (15.1.0)

- Recursively searches the current directory using a regex pattern
- Respects .gitignore rules
- Provides first-class support on Linux
- 'rg' is significantly faster than grep

More information: https://crates.io/crates/ripgrep

Upstream Benchmarks:
Task                                 ripgrep               GNU grep             
  Speedup vs grep
Basic search (Unicode)          536 lines, 0.082s       536 lines, 0.273s       
ripgrep ~3.3× faster
Ignoring gitignore files        447 lines, 0.063s       447 lines, 0.674s       
ripgrep ~10× faster
Large single file (~13GB)       7882 lines, 1.042s      7882 lines, 6.577s      
ripgrep ~6.3× faster

Bechmarks inside qemu (ripgrep built from this recipe):
Tool & Command                      Real Time    User Time    Sys Time    
Speedup vs grep
ripgrep (rg "printf" /usr)           0.496 s      0.511 s     0.604 s       
3.1× faster
grep (grep -R "printf" /usr)         1.533 s      0.633 s     0.897 s           
 —

Signed-off-by: Deepesh Varatharajan <[email protected]>
---
 .../ripgrep/ripgrep-crates.inc                | 116 ++++++++++++++++++
 .../ripgrep/ripgrep_15.1.0.bb                 |  22 ++++
 2 files changed, 138 insertions(+)
 create mode 100644 meta-oe/recipes-extended/ripgrep/ripgrep-crates.inc
 create mode 100644 meta-oe/recipes-extended/ripgrep/ripgrep_15.1.0.bb

diff --git a/meta-oe/recipes-extended/ripgrep/ripgrep-crates.inc 
b/meta-oe/recipes-extended/ripgrep/ripgrep-crates.inc
new file mode 100644
index 0000000000..aa7e3f9dd2
--- /dev/null
+++ b/meta-oe/recipes-extended/ripgrep/ripgrep-crates.inc
@@ -0,0 +1,116 @@
+# Autogenerated with 'bitbake -c update_crates ripgrep'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/aho-corasick/1.1.3 \
+    crate://crates.io/anyhow/1.0.100 \
+    crate://crates.io/bstr/1.12.0 \
+    crate://crates.io/cc/1.2.41 \
+    crate://crates.io/cfg-if/1.0.4 \
+    crate://crates.io/crossbeam-deque/0.8.6 \
+    crate://crates.io/crossbeam-epoch/0.9.18 \
+    crate://crates.io/crossbeam-utils/0.8.21 \
+    crate://crates.io/encoding_rs/0.8.35 \
+    crate://crates.io/encoding_rs_io/0.1.7 \
+    crate://crates.io/find-msvc-tools/0.1.4 \
+    crate://crates.io/getrandom/0.3.4 \
+    crate://crates.io/globset/0.4.18 \
+    crate://crates.io/grep/0.4.1 \
+    crate://crates.io/grep-cli/0.1.12 \
+    crate://crates.io/grep-matcher/0.1.8 \
+    crate://crates.io/grep-pcre2/0.1.9 \
+    crate://crates.io/grep-printer/0.3.1 \
+    crate://crates.io/grep-regex/0.1.14 \
+    crate://crates.io/grep-searcher/0.1.16 \
+    crate://crates.io/ignore/0.4.24 \
+    crate://crates.io/itoa/1.0.15 \
+    crate://crates.io/jobserver/0.1.34 \
+    crate://crates.io/lexopt/0.3.1 \
+    crate://crates.io/libc/0.2.177 \
+    crate://crates.io/log/0.4.28 \
+    crate://crates.io/memchr/2.7.6 \
+    crate://crates.io/memmap2/0.9.9 \
+    crate://crates.io/pcre2/0.2.11 \
+    crate://crates.io/pcre2-sys/0.2.10 \
+    crate://crates.io/pkg-config/0.3.32 \
+    crate://crates.io/proc-macro2/1.0.101 \
+    crate://crates.io/quote/1.0.41 \
+    crate://crates.io/r-efi/5.3.0 \
+    crate://crates.io/regex-automata/0.4.13 \
+    crate://crates.io/regex-syntax/0.8.8 \
+    crate://crates.io/ryu/1.0.20 \
+    crate://crates.io/same-file/1.0.6 \
+    crate://crates.io/serde/1.0.228 \
+    crate://crates.io/serde_core/1.0.228 \
+    crate://crates.io/serde_derive/1.0.228 \
+    crate://crates.io/serde_json/1.0.145 \
+    crate://crates.io/shlex/1.3.0 \
+    crate://crates.io/syn/2.0.107 \
+    crate://crates.io/termcolor/1.4.1 \
+    crate://crates.io/textwrap/0.16.2 \
+    
crate://crates.io/tikv-jemalloc-sys/0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
 \
+    crate://crates.io/tikv-jemallocator/0.6.1 \
+    crate://crates.io/unicode-ident/1.0.20 \
+    crate://crates.io/walkdir/2.5.0 \
+    crate://crates.io/wasip2/1.0.1+wasi-0.2.4 \
+    crate://crates.io/winapi-util/0.1.11 \
+    crate://crates.io/windows-link/0.2.1 \
+    crate://crates.io/windows-sys/0.61.2 \
+    crate://crates.io/wit-bindgen/0.46.0 \
+"
+
+SRC_URI[aho-corasick-1.1.3.sha256sum] = 
"8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+SRC_URI[anyhow-1.0.100.sha256sum] = 
"a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
+SRC_URI[bstr-1.12.0.sha256sum] = 
"234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4"
+SRC_URI[cc-1.2.41.sha256sum] = 
"ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7"
+SRC_URI[cfg-if-1.0.4.sha256sum] = 
"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+SRC_URI[crossbeam-deque-0.8.6.sha256sum] = 
"9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
+SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = 
"5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+SRC_URI[crossbeam-utils-0.8.21.sha256sum] = 
"d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
+SRC_URI[encoding_rs-0.8.35.sha256sum] = 
"75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
+SRC_URI[encoding_rs_io-0.1.7.sha256sum] = 
"1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
+SRC_URI[find-msvc-tools-0.1.4.sha256sum] = 
"52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
+SRC_URI[getrandom-0.3.4.sha256sum] = 
"899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
+SRC_URI[globset-0.4.18.sha256sum] = 
"52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3"
+SRC_URI[grep-0.4.1.sha256sum] = 
"309217bc53e2c691c314389c7fa91f9cd1a998cda19e25544ea47d94103880c3"
+SRC_URI[grep-cli-0.1.12.sha256sum] = 
"cf32d263c5d5cc2a23ce587097f5ddafdb188492ba2e6fb638eaccdc22453631"
+SRC_URI[grep-matcher-0.1.8.sha256sum] = 
"36d7b71093325ab22d780b40d7df3066ae4aebb518ba719d38c697a8228a8023"
+SRC_URI[grep-pcre2-0.1.9.sha256sum] = 
"667bb90a3ee51f8f6e2aadf1d0f106ea42efca4cf28f0e71f0fdec1137d7f9b0"
+SRC_URI[grep-printer-0.3.1.sha256sum] = 
"fd76035e87871f51c1ee5b793e32122b3ccf9c692662d9622ef1686ff5321acb"
+SRC_URI[grep-regex-0.1.14.sha256sum] = 
"0ce0c256c3ad82bcc07b812c15a45ec1d398122e8e15124f96695234db7112ef"
+SRC_URI[grep-searcher-0.1.16.sha256sum] = 
"ac63295322dc48ebb20a25348147905d816318888e64f531bfc2a2bc0577dc34"
+SRC_URI[ignore-0.4.24.sha256sum] = 
"81776e6f9464432afcc28d03e52eb101c93b6f0566f52aef2427663e700f0403"
+SRC_URI[itoa-1.0.15.sha256sum] = 
"4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+SRC_URI[jobserver-0.1.34.sha256sum] = 
"9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
+SRC_URI[lexopt-0.3.1.sha256sum] = 
"9fa0e2a1fcbe2f6be6c42e342259976206b383122fc152e872795338b5a3f3a7"
+SRC_URI[libc-0.2.177.sha256sum] = 
"2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
+SRC_URI[log-0.4.28.sha256sum] = 
"34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
+SRC_URI[memchr-2.7.6.sha256sum] = 
"f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
+SRC_URI[memmap2-0.9.9.sha256sum] = 
"744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490"
+SRC_URI[pcre2-0.2.11.sha256sum] = 
"9e970b0fcce0c7ee6ef662744ff711f21ccd6f11b7cf03cd187a80e89797fc67"
+SRC_URI[pcre2-sys-0.2.10.sha256sum] = 
"18b9073c1a2549bd409bf4a32c94d903bb1a09bf845bc306ae148897fa0760a4"
+SRC_URI[pkg-config-0.3.32.sha256sum] = 
"7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
+SRC_URI[proc-macro2-1.0.101.sha256sum] = 
"89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
+SRC_URI[quote-1.0.41.sha256sum] = 
"ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
+SRC_URI[r-efi-5.3.0.sha256sum] = 
"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+SRC_URI[regex-automata-0.4.13.sha256sum] = 
"5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
+SRC_URI[regex-syntax-0.8.8.sha256sum] = 
"7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
+SRC_URI[ryu-1.0.20.sha256sum] = 
"28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+SRC_URI[same-file-1.0.6.sha256sum] = 
"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[serde-1.0.228.sha256sum] = 
"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+SRC_URI[serde_core-1.0.228.sha256sum] = 
"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+SRC_URI[serde_derive-1.0.228.sha256sum] = 
"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+SRC_URI[serde_json-1.0.145.sha256sum] = 
"402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
+SRC_URI[shlex-1.3.0.sha256sum] = 
"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+SRC_URI[syn-2.0.107.sha256sum] = 
"2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b"
+SRC_URI[termcolor-1.4.1.sha256sum] = 
"06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+SRC_URI[textwrap-0.16.2.sha256sum] = 
"c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
+SRC_URI[tikv-jemalloc-sys-0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7.sha256sum]
 = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b"
+SRC_URI[tikv-jemallocator-0.6.1.sha256sum] = 
"0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a"
+SRC_URI[unicode-ident-1.0.20.sha256sum] = 
"462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06"
+SRC_URI[walkdir-2.5.0.sha256sum] = 
"29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+SRC_URI[wasip2-1.0.1+wasi-0.2.4.sha256sum] = 
"0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
+SRC_URI[winapi-util-0.1.11.sha256sum] = 
"c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+SRC_URI[windows-link-0.2.1.sha256sum] = 
"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+SRC_URI[windows-sys-0.61.2.sha256sum] = 
"ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+SRC_URI[wit-bindgen-0.46.0.sha256sum] = 
"f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
diff --git a/meta-oe/recipes-extended/ripgrep/ripgrep_15.1.0.bb 
b/meta-oe/recipes-extended/ripgrep/ripgrep_15.1.0.bb
new file mode 100644
index 0000000000..7bb6be1cb6
--- /dev/null
+++ b/meta-oe/recipes-extended/ripgrep/ripgrep_15.1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "ripgrep - Fast, recursive search tool like grep, written in Rust"
+HOMEPAGE = "https://crates.io/crates/ripgrep";
+DESCRIPTION = "ripgrep recursively searches directories for a regex pattern \
+               while respecting .gitignore. It's fast, safe, and written \
+               entirely in Rust."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+    file://LICENSE-MIT;md5=8d0d0aa488af0ab9aafa3b85a7fc8e12 \
+"
+
+SRC_URI = "crate://crates.io/ripgrep/${PV};name=ripgrep"
+SRC_URI[ripgrep.sha256sum] = 
"f388c4955f85477c28a8667355819844a06614b083c23517f0e86bd1d6d82b73"
+S = "${CARGO_VENDORING_DIRECTORY}/ripgrep-${PV}"
+
+inherit cargo cargo-update-recipe-crates
+
+DEPENDS += "libstd-rs"
+
+require ${BPN}-crates.inc
+
+BBCLASSEXTEND = "native"
-- 
2.49.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#122403): 
https://lists.openembedded.org/g/openembedded-devel/message/122403
Mute This Topic: https://lists.openembedded.org/mt/116691253/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to