Rust是什么?
Rust 是一种兼顾内存安全、高并发和稳定运行的编程语言。它有着惊人的运行速度(有些领域甚至超过 C/C++),能够防止运行错误,并保证线程安全。RUST 语言使每个人都能够构建可靠、高效的软件。
不足之处
- 学习门槛
- 编译成本(RAII, Resource Acquisition Is Initialization 资源获取即初始化)
Node的一些优缺点
- 优点
- 异步/高并发,promise、迭代器
- 函数式,react
- 包管理,npm
- 事件模型,epoll
- 门槛低/易上手,javascript
- 缺点
- 匿名函数、容错性
- 单进程(易阻塞)
- 性能(CPU密集)
node的一些应用场景
- RUSTful / Graphql API
- SSR
- Electron
- websocket
- …
如何去拓展Node的能力&应用场景?
Node Addons 🍾
适合写Node(V8 + libuv) Addons的语言👇
- C++(node-gyp)
- Rust
- golang
🌰
用node实现一个文件监听功能
1 | const Koa = require('koa'); |
用Rust实现一个文件监听功能
file.rs 文件内容👇
1 |
|
使用Rust-FFI 暴露外部接口给Node调用
⚒️ 脚手架&工具集,帮助你快速地将 node与rust 绑定(Rust bindings)
- neon
- node-rs
编译出native文件,即可被node引用
1 |
|
neon简单教程
- npm install neon-cli —global
- neon new
<projectname>
- root—-> neon build
- 生成 native/index.node——> const nativeTools = require(‘./lib/fw/native’);
创建的项目<projectname>
目录结构:
- lib
- index.js
- native
- build.rs
- Cargo.toml
- src
- lib.rs
- package.json
native/src/lib.rs👇
1 | extern crate neon; |
Rust在大前端领域,还能做什么?
- swc(高性能>babel)
- 监控(v8、system…)
- 跨端(by FFI)
- wasm
- so
- dll
学习资料
- 演练场:https://play.rust-lang.org/
- 社区wiki:https://learnku.com/rust/wikis
- 官方blog:https://blog.rust-lang.org/
- Cargo文档:https://doc.rust-lang.org/cargo/
- Demo仓库😁:https://github.com/ghyghoo8/rust-learn
- node转rust:https://candle.dev/blog/javascript-to-rust/javascript-to-rust-day-1-rustup/