本系列为“FinClip+”技术组合创新内容之一。围绕凡泰极客 FinClip 小程序技术和 Rust 语言的结合,提供一个组合方案的示范,也许在你决定做类似尝试的时候,可以参照作为项目模板,把工具、环境快速配置好,更便利顺畅的进入应用功能开发。
Why Rust?
因为它酷😎,因为个人喜欢,所以用它作为锤子,到处找钉... Nah... just kiddin' ~
必须有一些很合理的理由。理由们如下:
- 当你开发一款应用,需要跨 iOS、Android 甚至 MacOS、Windows、Linux 的时候,你可能在各平台还是用该平台相应的语言和开发框架,例如 Objective-C/Swift、Java/Kotlin、Flutter、Electron 等等,实现 native 的用户体验。但是不管目标平台为何,你可能有些算法性的、通用性的、底层的、无关于 UI 的代码,希望跨平台共用,开发一次但各平台编译
- 你的上述代码,例如是关于数据处理的、运算的、加解密的纯算法实现,并且对性能比较敏感。典型场景包括但不限于:设备端视频的编解码实现、设备端人工智能算法的实现、设备端系列加密相关算法的实现、设备端的文件压缩处理、设备端的数据处理、设备端 AR/VR 工具...
解决上述问题,可以采用任何操作系统都支持、几乎任何语言都能对接的 C 语言实现。可是我们知道 C 不是一种最“安全”的语言 - 线程安全、内存防泄漏... 作为一门四十年以上历史的“古早”语言,C 不是最佳选择。Microsoft 和 Linux 社区都认为,三分之二的软件安全脆弱性问题可以归结到内存安全的根源上。
能达到 C 语言级别的性能(比C++快)、又安全稳健的“现代”语言,可供选择的不多,一拍脑门想到的是 Rust。Rust 能写出这样的代码:
- 防范内存泄漏
- 实现“无所畏惧的并发”(Fearless Concurrency - 线程安全无忧)
- Runtime 极轻,编译出操作系统级别高性能原生机器码
Rust