项目基于 Tauri 框架开发,这是一款使用 Rust 和 Web 技术开发跨平台桌面应用的框架。相比 Electron,Tauri 使用 Rust 语言编写后端,并使用系统 WebView 渲染前端,因而拥有更高的性能和更小的体积。
/
-
Node.js 项目相关配置。
包括代码诊断、格式化工具等。src/
-
使用 Vue 3 开发的前端代码。
src-tauri/
-
使用 Rust 开发的后端代码。
src-tauri/crypto/
-
一些密码学工具函数,封装在单独的 crate 中,以优化编译速度。
Vue 是一款用于构建用户界面的渐进式框架,基于标准的 Web 技术栈开发,同时提供了一套声明式、组件化的编程模型。同时,Vue 在编译期间会对模板进行诸多优化,大大提升了其运行时的性能。
Vite 是一款基于 ES Modules 的构建工具,使用 esbuild 和 Rollup 作为底层构建引擎。Vite 通过使用浏览器原生的 ES Modules 特性,实现了快速的冷启动和热更新,同时也提供了一些开发时的辅助功能,如高速的模块热替换(HMR)、代码分割等。
用户界面主题使用了 Vuetify,这是一款基于 Vue 3 的 Material Design 组件库。
VueUse 项目提供了一些常用的 Vue Hooks,如 useColorMode
、useCycleList
等。
本项目使用 Rust 开发后端。Rust 是一款系统编程语言,其拥有内存安全、并发安全等特性,同时也拥有极高的性能与庞大的生态系统。
Rust 语言具有强大的性能、友好的编译期提示,以及由所有权、生存期等机制从根本上保证的内存安全。同时,Rust 语言还提供了一套完善的工具链,包括包管理器 Cargo、代码检查工具 clippy 等,极大提升了开发效率。
密码学函数部分借助了 rPGP 项目和 RustCrypto 项目,并封装在单独的 crate 中,以优化增量构建场景下的编译速度。
rPGP 是一个纯 Rust 的 OpenPGP 实现,其提供了密钥生成、签名、加密、解密等功能。
RustCrypto 是一个 Rust 的密码学库,其提供了对称加密算法、非对称加密算法、数字签名算法、哈希函数、认证加密算法等多种密码学算法的实现。