分享一个小项目:把 ripgrep 做成跨平台的单文件 rg.com,还支持 Python / Node.js / Java 调用

10 小时 23 分钟前
 bear330
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

欢迎大家试试看!如果觉得不错,我再考虑扩展到更多编程语言。
388 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1251579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX