summaryrefslogtreecommitdiff
path: root/README
blob: 69fbb8db365f8c877aa6c03eb7efdb584ff74023 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
asyncio event loop scheduling callbacks in eventlet.

* Trollius project: http://trollius.readthedocs.org/
* aiogreen at PyPI: https://pypi.python.org/pypi/aiogreen


Status
======

The version 0.1 is the first public release. It was not tested on any project
yet.


Installation
============

Requirements:

- eventlet (it was tested with eventlet 0.15)
- asyncio or trollius:

  * Python 3.4 and newer: asyncio is now part of the stdlib
  * Python 3.3: need Tulip 0.4.1 or newer (pip install asyncio)
  * Python 2.6-3.2: need trollius 1.0 or newer (pip install trollius)

Type::

    pip install aiogreen

or::

    python setup.py install


Changelog
=========

2014-11-19: version 0.1
-----------------------

* First public release


Implemented
===========

Methods:

* call_at()
* call_later()
* call_soon()
* run_forever()
* run_in_executor()
* run_until_complete()
* create_connection(): TCP client
* stop()
* coroutines and tasks

Tests of aiogreen 0.1:

* Tested on Python 2.7, 3.3 and 3.5
* Tested on Linux and Windows
* Tested with Trollius 1.0, 1.0.1 and 1.0.2
* Tested with asyncio 0.4.1 and 3.4.2


Not supported (yet)
===================

* run an event loop in a thread different than the main thread
* sockets: create_server, sock_recv
* pipes: connect_read_pipe
* subprocesses: need pipes
* signal handlers: add_signal_handler (only for pyevent hub?)


To do
=====

* Write new unit tests, or split Tulip test suite between implementation tests
  and specification tests
* Support eventlet without monkey-patching
* Test with Python 2 and 3
* Test with Trollius and asyncio
* Port to Windows; test on operating systems other than Linux
* Glue to ease debug: keep traceback between Handle, coroutine and greenthread.
  Is it even possible?
* run_in_executor(): use eventlet.tpool as the default executor?
  It avoids the dependency to concurrent.futures. aiogreen is written as a
  temporary solution to switch from eventlet to asyncio. So it may be better to
  use directly concurrent.futures to reduce the usage of eventlet?