FAQ¶
This is a list of Frequently Asked Questions regarding pulsar.
General¶
What is pulsar?¶
Check the overview.
Why should I use pulsar?¶
Check the pulsar advantage.
What is an actor?¶
Check the actor design documentation.
How is pulsar different from Twisted?¶
Pulsar is written for python 3.4 or above, Twisted is python 2. Pulsar is written on top of asyncio and the multiprocessing module, twisted uses its own implementations. In pulsar each actor has its own event loop, twisted as a global event loop (reactor) in the main process. Apart from all this, the underlying philosophy is very similar, to use an event-loop to register file descriptors and wait for events.
How is pulsar different from Tornado?¶
Pulsar is written for python 3.4 or above, Tornado is python 2 and python 3 compatible. This sounds like a big bonus for Tornado, however python 2 & 3 compatibility means Tornado cannot use some of the best features of python 3. Tornado is mainly a web framework, pulsar is not, with pulsar one can write asynchronous multiprocessing applications not just for the web. In addition Tornado does not provide multiprocessing out of the box. Like Twisted and Pulsar, Tornado uses an event-loop to listen for events on file descriptors and therefore its core implementation is not too dissimilar.
Socket Servers¶
Can I run a web-server with multiple process?¶
Yes you can, both posix and windows, Check wsgi in multi process.
WSGI Server¶
Is pulsar WSGI server pep 3333 compliant?¶
Yes it is, to the best of our knowledge. If you find an issue, please file a bug report.
Is a WSGI response asynchronous?¶
It depends on the WSGI application serving the request. Blocking application
such as django or flask can be made more pulsar-friendly by using the
middleware_in_executor()
utility as explained in the
wsgi tutorial.