GoForum › 🌐 V2EX
Rust 改造一切之大 json 查看、检索器——FerrisJson——纯 AI 手搓,不含人工
alabrala ·
2026-10-22 14:38 ·
0 次点赞 · 0 条回复
受老哥们 Rust 重构一切的思潮感召,加上工作需要,上周用 Codex 搓了一个纯 Rust 实现的开源小工具 FerrisJson,主要面向大 JSON 文件的浏览、搜索和 JSONPath 查询。
文件大了之后,除了能打开,更希望能快速定位字段、筛选数据、查看嵌套结构,再把需要的部分提取出来。FerrisJson 主要围绕这些需求开发,所有数据处理在本地完成,无需上传,也不需要账号。
按我目前的使用和实测,相比 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 条回复
添加回复
你还需要 登录
后发表回复