Libchan是一个超轻量级的网络库,能让使用不同通道的goroutines传递在网络服务中在相同的通道中交流:
简单信息传递
异步编程同步
Nesting:channelscansendchannels
Libchan支持下列传递:
In-memoryGochannel
Unixsocket
RawTCP
TLS
HTTP2/SPDY
Websocket
通过分解应用程序为松散的耦合型并发服务为应用程序扩展提供了巨大便利。同样的应用程序可以在信道内存通道中组成goroutines传递;然后,过渡到独立unix进程中,每个都分配到进程核心处理器中,且通过高性能IPC进行信息传递;然后,通过身份验证TLS会话来实现集群信息通信。正是得益于并发模型,所以使得Go语言如此流行。
并不是所有的传递都有相同的语法语义。内存Go通道只能确保一次精确的信息传输;TCP,TLS,以及不同HTTP包之间不能保证传输包是否能能够顺利到达。按照顺序到达的包可能被延迟或丢失。
libchan的一个明确目标是实现的简单性和规范的清晰性。将其移植到任何语言应该尽可能地简化。
评论