Hi,你们好!我在这里很高兴地宣布,在过去20天里,ShadowNode 伴随着XX须要,已经悄悄地增长了不少新功能,而且已经在这不到一个月的时间,迭代了N个小版本了(目前版本管理还不是特别规范了),主要包含以下:node
我也在今天抽空增长了在 TravisCI 的自动构建,在 ShadowNode 下个版本(v0.8.0)将会着手优化内存和性能方面的问题,以及 100% 兼容 N-API 的写法。内置模块以及社区兼容性将暂时不会再增长更多特性。git
另外,今天将放出一个彩蛋,ShadowNode 的破壳记分享给你们。github
之因此会产出 ShadowNode 的缘由彻底是由于以前大量基于 Node.js 在设备端开发的应用程序,在移植到一些更低端的平台时,遇到的最大问题就是内存,想过不少办法包括:网络
上述的两个方案,在我看来都是可行性不错的,不过前者对 V8 以及相关 API 的工做量依然很大,后者我我的却是至关感兴趣去实现,不过这样会失去脚本语言的优点,再加上增长了交叉编译的门槛,得不偿失。架构
最终机缘巧合之下,我找到了三星开源的 IoT.js,当时发现这个项目时,看到文档的时候就已经开心得想跳起来了。IoT.js 已经作了至关一部分重要的工做了,包括增长 CommonJS 模块系统、文件系统模块、网络模块、UDP 模块、Buffer 还有最重要的 Stream 类族,并且整个构建系统也至关简单易懂,基于这些工做,我才能够轻松得往完成目前 ShadowNode 的工做。curl
然而在慢慢迁移的过程当中,有一些观点与 IoT.js 的开发团队是不一样的:模块化
好,以上其实就是 ShadowNode 的一则短小的开发故事,若是你从中以为有趣,不妨也加入到 ShadowNode 开发社区中来,点击 Rokid/ShadowNode,欢迎 Star 🌟函数
下次将分享在开发 ShadowNode 过程当中,对于 NPM 以及模块化的一些见解重塑,敬请期待!性能