原先的NodeJS要跑Addon,通常都是寫Native C++ Code
不過現在Rust的影響力日漸增加,路也不只一條
在我的Github分別提供了兩種做法
C++
搭配node-gyp使用
程式碼就不列了,寫出其他細節
binding.gyp
的寫法如下
1 | { |
編譯產生出fib.node
,它的本質就是shared object
1 | $ node-gyp configure build |
至於Nodejs的使用方式
1 | const Fib = require('fib'); |
Rust
Rust的產生端比較簡單,重點在於Cargo.toml
注意crate-type
那欄指定dylib,也就是shared object
1 |
|
編譯產生libfib.so
1 | $ cargo build --release |
Nodejs的使用方式就比C++版複雜一點,需要node-ffi
1 | const ffi = require('ffi'); |