[Twisted-Python] Crochet 1.5.0: Use Twisted in Django, Flask, or anywhere else

Itamar Turner-Trauring itamar at itamarst.org
Wed Apr 13 14:18:22 MDT 2016


Do you wish you could:

  * Use the power of Twisted's asynchronous networking in Django, Flask,
    or other threaded applications?
  * Provide a blocking API powered by Twisted underneath, without
    exposing it to the caller?
  * Write a library that provides APIs both for Twisted and non-Twisted
    applications?
  * Use threads more easily inside Twisted applications?

Crochet lets you do all that, and more, by hiding and automatically 
starting the Twisted reactor and providing a blocking API for calling 
into Twisted. If you need to use your library from a normal Twisted 
application you can disable the auto-start functionality. Here's an 
example of using Twisted in a blocking manner:

from __future__ import print_function
from twisted.names import client
from crochet import setup, wait_for
setup()

@wait_for(timeout=5.0)
def gethostbyname(name):
      """Use the Twisted DNS library."""
      d = client.lookupAddress(name)
      d.addCallback(lambda result: result[0][0].payload.dottedQuad())
      return d

if __name__ == '__main__':
      # Application code using the public API - notice it works in a normal
      # blocking manner, with no event loop visible:
      import sys
      name = sys.argv[1]
      ip = gethostbyname(name)
      print(name, "->", ip)

New in 1.5.0 is official Python 3.5 support; Python 2.6, 3.3 and older 
versions of Twisted are no longer officially supported (but are likely 
to still work).

If you need help using Crochet (or just general Twisted or Python help) 
I am currently available for short-term consulting. You can read the 
documentation at https://crochet.readthedocs.org/.

--Itamar Turner-Trauring
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://twistedmatrix.com/pipermail/twisted-python/attachments/20160413/9514cfbd/attachment.html>


More information about the Twisted-Python mailing list