很久不見,Yorkie 最近作了一個小東西,在此分享給你們!
先放個連接:Rokid/shadow-node
node
從名字來看,他可不是一個 Node.js 的 C++ Addon,而是能夠運行 Node.js 程序的另外一個運行時(Runtime),相比 Node.js,具備更快的啓動速度以及更小的內存佔用、更加節省內存的模塊加載方式!原來一個 Node.js 應用須要好幾十M的運行時內存,如今可能只須要幾兆就能夠搞定了,而且擁有更快的啓動速度。這也是由於 ShadowNode 再也不使用 v8 做爲 JavaScript 引擎,而是使用一款三星出品的 JerryScript 在作底層的解釋執行!
ShadowNode 目前支持的模塊還比較有限,不過一些基礎的如 HTTP/NET/DNS/Child Process 等都是支持的,而且除此以外,還默認支持 DBus 通信方式,對於像 Linux 平臺,簡直是不要太方便,另外,對於硬件玩家,若是有興趣移植到本身的開發板上的,也支持了諸如 I2C/ADC/GPIO 等這樣的硬件接口,也就是說接入硬件僅僅寫寫腳本就能把你的硬件玩起來!另外,也能夠把他移植到你家裏的任意設備上,做爲腳本語言使用,也是不錯的選擇!
git
在此,我對 ShadowNode 寄予着很是大的但願,目前 Node.js 在嵌入式設備來講,無可避免都是內存佔用的大戶,以前 Tessel 曾經嘗試把 JavaScript代碼編譯成 Lua 來達到下降內存的目的,也有一些不一樣的開發板使用像 JerryScript 這樣低內存的引擎/虛擬機,而後僅僅支持了部分簡單的模塊以及 CommonJS,而我徹底但願 ShadowNode 將更徹底地支持 Node.js/Npm 模塊,可以讓 JavaScript 開發者能無縫在 Node.js 與 ShadowNode 中切換,儘可能少地減小學習的成本!另外,ShadowNode 底層使用純 C 編寫,咱們將大部分代碼交給 C 來實現,JavaScript 僅僅做爲膠水層語言!