龙芯上终于有原生开发工具箱了:XinyuToolkit


先说一个我遇到的真实问题。

龙芯3A6000发布之后,性能确实上来了,LoongArch架构也逐渐成熟。但我日常在龙芯机器上写代码的时候,发现一个挺尴尬的事:缺少趁手的原生开发工具箱。

你想分析一个二进制文件?需要装 ImHex,虽然 ImHex 在安同的oma软件源有龙芯版本,但是看起来貌似无法正常显示GUI。想看 SQLite 数据库?DB Browser 也没有官方龙芯支持。想扫一下代码里的安全隐患?大部分工具都是 x86 独占。最后的结局往往是:打开终端,用命令行凑合。

我搜过 GitHub、GitCode、Gitee,也翻过很多龙芯社区帖子。粗略统计,和这些功能相关的开源/商业工具超过200个,但能直接在龙芯上跑的原生开发工具箱,确实没找到

这就是我做 XinyuToolkit 的原因。


XinyuToolkit 是什么?

一个面向龙芯及国产平台的开发者工具箱,用 Rust + iced 写的原生GUI应用,不依赖 Electron,不依赖浏览器。目标是:一个应用,覆盖开发中常用的工具

目前包含的功能:

项目健康分析

工具 说明
代码编辑器 多标签页、语法高亮(20+语言)、minimap、书签
Git 集成 状态查看、提交、diff、历史图形化
代码股市 把Git提交历史可视化为K线图,看代码库的"走势"
二进制分析 Hex查看、ELF/PE解析、字符串提取
项目健康分析 扫描代码中的龙芯兼容性问题和安全隐患
YARA 扫描 纯Rust实现的启发式恶意软件特征检测
网络监听 本机端口查看 + 局域网端口扫描
系统监控 CPU/内存/磁盘/网络实时监控,进程列表
数据库查看器 SQLite可视化浏览、SQL查询
思维白板 无边画布,支持涂鸦/图形/导出SVG
火焰图 SVG火焰图解析与可视化
正则测试器 实时匹配测试
颜色选择器 HSV/RGB/HSL/Hex多模式
模糊查找 / 全局搜索 类似fzf的文件查找和项目内搜索

说一些客观数据。

  • 代码量:33,000+ 行 Rust
  • 支持的架构:LoongArch64 原生,x86_64 兼容
  • 国际化:中/英/俄/德/日 五种语言
  • GUI框架:iced 0.14(Elm架构,非Electron)
  • 许可证:木兰宽松许可证 v2(MulanPSL-2.0)
  • 当前版本:v1.3.6

安全性方面,上个版本做了8项安全修复,包括SQL注入防护、shell命令注入防护、panic死锁修复、除零检查、非原子配置写入修复等。44个单元测试全通过。


两个比较独特的功能,多说几句。

代码股市:把Git提交历史用K线图的方式展示。每个文件是一支"股票",行数变化是股价涨跌,新增文件是IPO,删除文件是退市,文件夹是ETF,整个仓库是大盘指数。这个想法的来源是:看Git历史通常是用线性日志,但如果把代码增长当作一种"趋势",用K线来看会更直观。据我所知,目前没有其他工具做这个。

项目健康分析:扫描 Rust/Go/C/C++/C# 代码,检测两类问题。一是龙芯兼容性风险------比如代码里用了 x86_64 独占的内联汇编、SSE/AVX 指令、或者依赖了没有 LoongArch 移植的库。二是安全隐患------SQL注入、命令注入、panic处理不当、除零风险等。覆盖30多条检测规则。这个功能的出发点很简单:在龙芯上移植项目之前,先知道哪些代码可能会出问题


怎么用?

从源码编译:

git clone https://gitcode.com/H076lik/XinyuToolkit.git
cd XinyuToolkit
cargo build --release
./target/release/xinyu-toolkit

需要 Rust 1.85+。龙芯平台上建议先安装 Noto Sans CJK 字体以获得最佳中文渲染效果。

不过龙芯用户如果使用的glibc版本大于2.36那直接下载发行版本(二进制可执行文件)即可。

现状和局限。

这个项目目前处于 v1.x 阶段,功能已经可用,但还有很多可以改进的地方。比如主题系统目前只有亮色模式,暗色模式的框架已经留好但还没实现。一些高级功能(比如LSP代码补全)之前有过实验,但为了保持轻量先移除了------定位是"工具箱"而不是"IDE",编辑器是入口,工具是核心。

如果你也在龙芯上开发,欢迎试试。有bug可以提issue,有功能需求也可以讨论。

GitCode: https://gitcode.com/H076lik/XinyuToolkit


最后。

做这个项目不是为了"填补空白"这种大话,而是因为我自己每天在龙芯上写代码,真的需要这些工具。既然200多个现有工具都不能直接用,那就自己动手写一个。如果你也有同样的痛点,希望这个工具能帮到你。

感觉怎么标题有歧意[摸不着头脑]