GoForum › 🌐 V2EX

Rust 改造一切之大 json 查看、检索器——FerrisJson——纯 AI 手搓,不含人工

alabrala · 2026-10-22 14:38 · 0 次点赞 · 0 条回复

受老哥们 Rust 重构一切的思潮感召,加上工作需要,上周用 Codex 搓了一个纯 Rust 实现的开源小工具 FerrisJson,主要面向大 JSON 文件的浏览、搜索和 JSONPath 查询。

文件大了之后,除了能打开,更希望能快速定位字段、筛选数据、查看嵌套结构,再把需要的部分提取出来。FerrisJson 主要围绕这些需求开发,所有数据处理在本地完成,无需上传,也不需要账号。

交互设计和 UI 参考了 fx 和 JSONBolt。

按我目前的使用和实测,相比 fx ,FerrisJson 更节省内存,JSONPath 查询也快得多;相比 JSONBolt ,多了 JSONPath 查询和多语言 JSON 内容查看支持。 不过,打开文件的速度和非 JsonPath 查询比 JSONBolt 慢很多,加载速度和内存占用仍有优化空间。

用一个 300 MB 、包含各类 JSON 数据类型的随机生成文件做了本地实测:

项目 实测结果
内存占用 约 1.3 GB
打开文件,含 JSONPath 建索引 约 6.5 秒
搜索首批匹配结果上屏,含正则 50 ms 内
完成整份文件搜索 约 2 秒

这里的 50 ms 指首批匹配结果可见,完整搜索约需 2 秒。以上是当前本地样本的结果,实际表现会随文件结构、查询条件和机器配置变化。

目前支持:

  • 大文件结构浏览:树形展开与折叠、值预览、复制路径、导出子树,另有可选文件索引和实验性稀疏索引、分页树。
  • 搜索与筛选:按键名或值搜索、正则匹配、JSONPath / JSON Pointer 查询,支持结果定位与导出。
  • 键盘操作:Vim 风格导航、数字前缀、相对行号和浏览历史。
  • 桌面与终端使用:Windows / macOS 提供桌面界面,Linux 使用终端界面,macOS 也可选终端版;同时提供 CLI 。

当前版本 0.8.0,采用 GPL-3.0-or-later 开源,还在持续完善大文件体验和跨平台支持。

项目地址:GitHub:bugfree314/FerrisJson

感慨一下: AI 真好用啊,我只给了一句话加两个链接,半小时就完成了勉强能用的初版原型。 但优化速度和内存占用花了近一周,重置了两轮额度。 我全程一行代码没写,但因为不太懂这个领域,优化方面还是有点力竭。 诚邀大家使用,如果大家有好的优化建议,欢迎提 issue 和 PR (在线蹲大佬)。

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: alabrala
发布: 2026-10-22
点赞: 0
回复: 0