仅使用nng建立网络
pynng的Python项目详细描述
我是平恩
nanomsg next generation(nng)的人体工程学绑定,Python。 pynng在nng的全部功能之上提供了一个很好的接口。nng,和 因此,pynng使单个进程之间的通信变得容易 网络上的一台或多台计算机。这个库与Python兼容 ≥3.5。nng是的rewritingNanomsg,它是{a9}的精神继承者。在
目标
提供一个Pythonic,在Windows和Unix-y上使用现成的库 平台。就像nng本身一样,许可证是MIT的,所以它可以在没有许可证的情况下使用 限制。在
安装
在Windows、MacOS和Linux上
pip3 install pynng
应该足够了。注意,在32位Linux和macOS上没有二进制发行版 是可用的,所以CMake也是必需的。在
从GitHub回购进行构建同样有效,natch:
^{pr2}$(如果要运行测试,还需要pip3 install pytest
和{pytest
。)
pynng也可以在BSD上工作。谁知道呢!在
使用pynng
使用pynng很容易:
frompynngimportPair0s1=Pair0()s1.listen('tcp://127.0.0.1:54321')s2=Pair0()s2.dial('tcp://127.0.0.1:54321')s1.send(b'Well hello there')print(s2.recv())s1.close()s2.close()
因为pynng套接字支持在套接字的__init__
中设置大多数参数
方法,并且是一个上下文管理器,则上面的代码可以编写得更短:
frompynngimportPair0withPair0(listen='tcp://127.0.0.1:54321')ass1, \ Pair0(dial='tcp://127.0.0.1:54321')ass2:s1.send(b'Well hello there')print(s2.recv())
将pynng与异步框架一起使用
异步发送也适用于
importpynngimporttrioasyncdefsend_and_recv(sender,receiver,message):awaitsender.asend(message)returnawaitreceiver.arecv()withpynng.Pair0(listen='tcp://127.0.0.1:54321')ass1, \ pynng.Pair0(dial='tcp://127.0.0.1:54321')ass2:received=trio.run(send_and_recv,s1,s2,b'hello there old pal!')assertreceived==b'hello there old pal!'
还有许多其他协议可用:
Pair0
:一对一,双向通信。在Pair1
:一对一、双向通信,还支持 多义插座Pub0
,Sub0
:发布/订阅套接字。在Surveyor0
,Respondent0
:向受访者广播一份调查,例如 提供哪些服务。在Req0
,Rep0
:请求/响应模式。在Push0
,Pull0
:聚合来自多个源的消息和负载平衡 在众多目的地中。在
示例
一些示例(好的,只有两个示例)在 examples 目录。在
Git分支策略
仅稳定分支是master
。将永远不会是git push -f
在主人身上。另一方面,所有其他分支都不稳定;
它们可能会被删除、重新设置基址、强制推送以及其他任何形式的怪异行为
生意。在
- 项目
标签: