分享一下最近写的一些nodejs库
1 小型应用层协议解析状态机
介绍:小型的有限状态机框架,用于解析长连接(比如tcp、unix域)上自定义的应用层协议
https://github.com/theanarkh/tiny-fsm.git
npm install nodejs-tiny-fsm
2 ipc库
介绍:使用自定义的应用层协议,实现nodejs兄弟进程通信,windows下通过tcp、非windows下通过unix域
https://github.com/theanarkh/nodejs-ipc
npm install nodejs-local-ipc
3 自定义应用层协议
实现自己的应用层协议和解析器,可以使用于tcp、unix域之上。比如在在tcp长连接中,我们可以并发请求,但是我们需要解析出每一个请求对应的数据,并且响应需要按序返回(http2.0解决了这个问题),tiny-application-layer-protocol支持在tcp、udp、unix域中,并发请求,响应不需要按序返回。
https://github.com/theanarkh/tiny-application-layer-protocol
npm install tiny-application-layer-protocol
4 线程池库
基于nodejs worker_threads的线程池。耗时操作或nodejs没有提供异步模式的api(例如解密、同步的文件api)都可以在线程池中执行,业务代码只需要返回一个Promise或async函数给线程池库,至于业务逻辑做什么操作,其实都可以,比如setTimeout,异步操作,async await等(设计文档https://zhuanlan.zhihu.com/p/266656697)。
https://github.com/theanarkh/nodejs-threadpool
npm install nodejs-threadpool