<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Crochet is an MIT-licensed library that makes it easier for
blocking or
threaded applications like Flask or Django to use the Twisted
networking
framework. Crochet provides the following features:</p>
<ul class="simple">
<li>Runs Twisted's reactor in a thread it manages.</li>
<li>The reactor shuts down automatically when the process' main
thread finishes.</li>
<li>Hooks up Twisted's log system to the Python standard library <tt
class="docutils literal">logging</tt>
framework. Unlike Twisted's built-in <tt class="docutils
literal">logging</tt> bridge, this includes
support for blocking Handler instances.</li>
<li>A blocking API to eventual results (i.e. <tt class="docutils
literal">Deferred</tt> instances). This last
feature can be used separately, so Crochet is also useful for
normal Twisted
applications that use threads.</li>
</ul>
<p>You can download Crochet at: <a
href="http://pypi.python.org/pypi/crochet">http://pypi.python.org/pypi/crochet</a><br>
</p>
<p>Documentation can be found at: <a
href="http://crochet.readthedocs.org">http://crochet.readthedocs.org</a></p>
<p>Bugs and feature requests should be filed at the project page: <a
href="https://github.com/itamarst/crochet">https://github.com/itamarst/crochet</a><br>
</p>
<p><strong>What's New in 0.9.0</strong></p>
<p>New features:</p>
<ul class="simple">
<li>Expanded and much improved documentation, including a new
section with
design suggestions.</li>
<li>New decorator <tt class="docutils literal">@wait_for_reactor</tt>
added, a simpler alternative to
<tt class="docutils literal">@run_in_reactor</tt>.</li>
<li>Refactored <tt class="docutils literal">@run_in_reactor</tt>,
making it a bit more responsive.</li>
<li>Blocking operations which would otherwise never finish due to
reactor having
stopped (<tt class="docutils literal">EventualResult.wait()</tt>
or <tt class="docutils literal">@wait_for_reactor</tt>
decorated call)
will be interrupted with a <tt class="docutils literal">ReactorStopped</tt>
exception.</li>
</ul>
<p>Bug fixes:</p>
<ul class="simple">
<li><tt class="docutils literal">@run_in_reactor</tt> decorated
functions (or rather, their generated wrapper)
are interrupted by Ctrl-C.</li>
<li>On POSIX platforms, a workaround is installed to ensure
processes started by
<cite>reactor.spawnProcess</cite> have their exit noticed. See <a
class="reference external" href="http://tm.tl/6738">Twisted
ticket 6378</a>
for more details about the underlying issue.</li>
</ul>
</body>
</html>