现在 Golang 用的越来越多,但是很多时候又舍弃不了 Node.js/TypeScript 的动态特性。
最近就有这么一个需求,某些特殊的处理逻辑需要使用动态处理和一些强反射需求,这些正好是 Go 不擅长的。
怎么办呢?
以前用 Node 的时候可以直接使用 process.send
和 process.on
来和子进程进行通信,以达到 fork 和多线程的效果。
基于上述诉求,就有了 go2node 的产生。
go2node 借助 Node.js 本身已有的 IPC 协议,支持消息和文件描述符 (File Descirptor) 的传递,
由于可以传递 FD,我们甚至可以让 Node 接管由 Go 监听到的网络连接。
Node IPC 消息默认序列化使用 JSON,因此在 Go 中需要自行处理 JSON 反序列化。
Node 不需要依赖任何第三方库,Go 的代码也仅依赖标准库,因此代码较干净。
依托于 Golang 和 Node.js 对 WebAssembly 的支持,这个库的可玩性和灵活性大有可为。
支持的系统:
未来的应用系统会越来越复杂,异构系统会越来越常见,我们考虑的是用合适的语言解决合适的问题,
开发 go2node 也是为了进行这样一种尝试,同时也算是抛转引玉,看看大家对这方面有什么好的意见。
欢迎 Star 和 Report Issue
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.