rg ( ripgrep )是一个很强大的工具,但并不是每个平台都有。
有时候我想在 Python 或其他语言里使用它,但平台、CPU 架构和编程语言的组合实在太多了,处理起来比较麻烦。
所以我把它做成了 APE ( Actually Portable Executable ),这样只需要一个可执行文件,就能在 Windows 、Linux 和 macOS 上运行,同时支持 x86_64 和 ARM64 架构。
然后利用 APEBind ,为不同编程语言生成统一的调用接口。这样无论使用哪种语言,想调用 rg 都会方便很多。
其实同样的思路,我还做了另外两个项目:
sympy-ape:可以直接在 Java / Node.js 里调用 Python 的 SymPy 。(当然是不必有 python)
tika-ape:可以在 Python 里直接使用 Apache Tika ,不需要额外安装 JVM 等依赖。
这些项目的核心思路都差不多:把工具打包成跨平台的 APE ,再通过 APEBind 提供不同语言的调用接口,尽量减少环境和依赖方面的麻烦。
rg-ape 项目地址:
https://github.com/bear0330/rg-ape欢迎大家试试看!如果觉得不错,我再考虑扩展到更多编程语言。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1251579
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.