Ripgrep, grep, ag, Git grep, ucg, pt, sift से भी तेज़ सर्च तकनीक (2016)
(blog.burntsushi.net)सारांश: नए कमांड-लाइन सर्च टूल ripgrep का परिचय
ripgrepThe Silver Searcher की उपयोगिता और GNU grep के प्रदर्शन को मिलाने वाला एक नया कमांड-लाइन सर्च टूल है.- यह Linux, Mac, Windows के लिए बाइनरी देता है और Rust में लिखा गया है.
- सिंगल फ़ाइल और बड़े डायरेक्टरी सर्च में प्रदर्शन और शुद्धता, दोनों के लिहाज़ से उत्कृष्ट है.
- Unicode सपोर्ट बेहतरीन है, और memory map का उपयोग करने वाले टूल्स से आम तौर पर अधिक तेज़ है.
ripgrep का परिचय
फ़ायदे
- यह दूसरे सर्च टूल्स से तेज़ है और
.gitignoreद्वारा ignore की गई फ़ाइलों को सर्च नहीं करता. - केवल खास फ़ाइल टाइप्स में सर्च करने या उन्हें बाहर रखने की सुविधा देता है.
grepकी कई सुविधाओं को सपोर्ट करता है और Unicode को हमेशा सपोर्ट करता है.- वैकल्पिक रूप से PCRE2 regular expression engine का उपयोग किया जा सकता है.
- अलग-अलग text encoding और compressed फ़ाइलों में सर्च को सपोर्ट करता है.
- मनचाहे input preprocessing filter को सपोर्ट करता है.
आपत्तियाँ
- यह POSIX standard का पालन नहीं करता और
grepजितना सार्वभौमिक नहीं है. - दूसरे टूल्स में मौजूद कुछ खास सुविधाएँ या बग
ripgrepमें नहीं हो सकते. - प्रदर्शन के कुछ edge case में
ripgrepदूसरे टूल्स से धीमा हो सकता है.
इंस्टॉलेशन
ripgrepका बाइनरी नामrgहै और इसे कई प्लेटफ़ॉर्म पर इंस्टॉल किया जा सकता है.- Homebrew, Archlinux, और Rust प्रोग्रामरों के लिए इंस्टॉलेशन तरीके दिए गए हैं.
- इसे source से सीधे build करना भी संभव है.
त्वरित टूर
ripgrepका कमांड-लाइन उपयोग दूसरे समान टूल्स से बहुत अलग नहीं है.- यह terminal output, रंग, line number display आदि को अपने आप सपोर्ट करता है.
- अलग-अलग सर्च विकल्पों और pattern का उपयोग करके सर्च किया जा सकता है.
ripgrep की संरचना
पृष्ठभूमि
grepऔरackसे निकले टूल्स के बीच के अंतर और समानताओं को समझाया गया है.ripgrep,grepकी बड़े फ़ाइल सर्च करने की क्षमता औरackकी "smart" search default settings को जोड़ता है.
फ़ाइल सर्च की तैयारी
- तेज़ directory iterator का उपयोग और फ़ाइल path filtering महत्वपूर्ण है.
.gitignoreफ़ाइल के नियमों को तेज़ी से लागू करना प्रदर्शन को प्रभावित करता है.
सर्च
- तेज़ regular expression engine और literal optimization महत्वपूर्ण हैं.
- पूरी फ़ाइल को line-by-line सर्च करने के बजाय बड़े buffer को एक बार में सर्च करता है.
आउटपुट
- सर्च परिणामों को memory buffer में लिखा जाता है और फिर उन्हें
stdoutमें serialize करके आउटपुट दिया जाता है.
कार्यप्रणाली
अवलोकन
- उपयोगकर्ता जिस समस्या को हल करना चाहता है, उस पर ध्यान दिया गया है और निष्पक्ष benchmark की कोशिश की गई है.
- कई टूल्स का benchmark किया गया है, और तुलना करते समय हर टूल के default behavior के अंतर को ध्यान में रखा गया है.
GN⁺ की राय
इस लेख की सबसे महत्वपूर्ण बात यह है कि इसमें विस्तार से बताया गया है कि ripgrep के पास मौजूदा सर्च टूल्स की तुलना में कौन-कौन से फ़ायदे हैं. खास तौर पर, तेज़ प्रदर्शन, Unicode सपोर्ट, और अलग-अलग फ़ाइल फ़ॉर्मैट व encoding के लिए सपोर्ट जैसी बातें उपयोगकर्ताओं को आकर्षित कर सकती हैं. यह लेख इसलिए रोचक है क्योंकि यह समझने में मदद करता है कि नया टूल मौजूदा टूल्स से कैसे अलग है, और यह अंतर वास्तविक उपयोगकर्ताओं पर क्या असर डाल सकता है.
1 टिप्पणियां
Hacker News राय