-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async switch #17
Comments
Another interesting candidate : gevent
From http://www.gevent.org/intro.html :
From a first look, gevent based implementation would be complementary to twisted... Just for memory, there are also a few benchmarks out there with other possible options: |
my first try with gevent went simpler than I expected : https://gist.github.com/asmodehn/1c8ded26f543ce72b0686ca0bea76d27 |
Few problem with gevent though :
|
This will likely depend on how colos implements "collaborative processes" ( as a set of co(llaborative)routines ) and should be done after that. There area few other roadbloacks : python3, ros distro compatibility, packaging, etc. |
Since pyzmp role is mostly to transfer messages from Node A to Node B, and our current usecase is to transfer messages between Web Servers and Ros Nodes, It makes sense to use an async framework.
Check : http://klen.github.io/py-frameworks-bench/
Since we also have to support python 2.7 we have a number of candidates :
So twisted seems the way to go.
@dhirajdhule I have thought about that for a while, and I think this is the way to go for pyzmp. To start integrating twisted to replace our main loop in there, and have it managed by a long time proven and maintained python package.
To be clear, the communication between two processes is another topic, but inside one process, we should start implementing asynchronous behaviors. Later on we will be able to improve pyros and rostful with this as well.
The text was updated successfully, but these errors were encountered: