0%

基于Rust+electron的多线程GUI跨平台子域扫描器

子域扫描器很多,通过DNS记录子域解析记录的查询平台也有很多。
因为目的是为了学习Rust,所以就采用了穷举+嗅探HTTP返回状态码来查找存活的子域。
这样涉及到的技术就比较多,有:迭代字典文件、目录、多线程、http库、vec数组、等。

一开始实现了命令行可执行文件版的,并交叉编译跨Mac、Linux、Windows三个平台。

后来准备加个GUI,试了试Rust原生GUI库,发现无论是文档还是上手效果都不令人满意。
偶然发现一个小哥做了一个Rust GUI生态概述:
https://gitlab.com/bloom42/research/-/tree/master/rust_gui_ecosystem

就选择了Rust + Electron + Neon 这种方式实现了。
由于ele是js库,并基于node环境的,所以成品软件使用起来有chrome的手感。
界面方面用了Google Material的input、layout、button组件。

总结:
neon是用于把rust和js绑定起来的一个库,使用过程中就发现对websocket的支持有问题。原生rust就没有问题。

生态方面,rust官方文档做的挺好的,没得挑。但是第三方库的文档是真的不友好,这个体验比较差。