• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cooperative multitasking and i/o for Python

Evergreen: cooperative multitasking and i/o

Overview

Evergreen is a cooperative multitasking and i/o library for Python. It provides equivalent primitives to those for thread programming, but uses a cooperative model instead.

Operations are driven by an event loop which will run the given tasks and i/o operations in a non-blocking manner while presenting the user a synchronous, blocking API.

Features:

  • Cooperative multitasking
  • Cooperative synchronization primitives: locks, events, queues, channels
  • Futures API (almost) compatible with the standard library
  • Cooperative versions of several standard library modules
  • Ability to monkey patch standard library modules to make them cooperative

Running the test suite

There are several ways of running the test suite:

  • Run the test with the current Python interpreter:

    From the toplevel directory, run: nosetests -v

  • Use Tox to run the test suite in several virtualenvs with several interpreters

    From the toplevel directory, run: tox -e py26,py27,py32, py33 this will run the test suite on Python 2.6, 2.7, 3.2 and 3.3 (you'll need to have them installed beforehand)

CI status

https://secure.travis-ci.org/saghul/evergreen.png?branch=master

Documentation

http://readthedocs.org/docs/evergreen/

Author

Saúl Ibarra Corretgé <[email protected]>

Code written by other authors has been adapted for use with Evergreen, check the NOTICE file.

License

Unless stated otherwise on-file Evergreen uses the MIT license, check LICENSE and NOTICE files.

Contributing

If you'd like to contribute, fork the project, make a patch and send a pull request. Have a look at the surrounding code and please, make yours look alike :-) If you intend to contribute a new feature please contact the maintainer beforehand in order to discuss the design.

More Repositories

1

txiki.js

A tiny JavaScript runtime
C
2,520
star
2

pyuv

Python interface for libuv
C
1,115
star
3

pythonz

Python installation manager supporting CPython, Stackless, PyPy and Jython
Python
749
star
4

aiodns

Simple DNS resolver for asyncio
Python
529
star
5

sipp-scenarios

SIPp scenarios I use for testing SIP stuff
256
star
6

lxd-alpine-builder

Build Alpine Linux images for LXD
Shell
175
star
7

pycares

Python interface for c-ares
Python
165
star
8

python-fibers

Lightweight cooperative microthreads for Python
C
159
star
9

uvent

A gevent core implemented using libuv
Python
136
star
10

wasi-lab

Some WASI experiments 🧪☣️☠️
C
120
star
11

CallRoulette

A WebRTC demo using Python (asyncio + aiohttp) as the backend
JavaScript
103
star
12

sjs

Skookum JS: a JavaScript runtime
C
98
star
13

tornaduv

Tornado IOLoop implemented with pyuv
Python
96
star
14

aiouv

A PEP-3156 compatible event loop
Python
70
star
15

uvwsgi

Python WSGI server
Python
37
star
16

qrfcview-osx

RFC viewer for OSX
C++
36
star
17

node-abstractsocket

Abstract namespace socket support for Node
JavaScript
24
star
18

libuv-chat

Something something libuv something
C
21
star
19

twisted-pyuv

Twisted reactor implemented with pyuv
Python
19
star
20

njk

Powerful portable templating in less than 1MB
C
19
star
21

cordova-plugin-audioroute

iOS audio route change events and more for Cordova
Objective-C
17
star
22

twitterbot

A simple Twitter bot retwitting the given hashtag
Python
14
star
23

TunnelIt

SSH reverse forwarder using Twisted
Python
14
star
24

sipsimple-examples

SIPSIMPLE SDK examples
Python
13
star
25

macOS-setup

My macOS setup, automated with Ansible
Shell
12
star
26

dotvim

My vim configuration
Vim Script
11
star
27

SIPwPing-server

Server providing a simple RESTful API to ping SIP servers
Python
11
star
28

shline

A simple powerline style prompt for my bash shell
Python
10
star
29

tornado-backdoor

Interactive Python interpreter over TCP for Tornado applications
Python
9
star
30

pysophia

WIP: Python (CFFI) bindings for Sophia
Python
9
star
31

jitsi-meet-api

Jitsi Meet external API wrapper
JavaScript
8
star
32

sandbox-html

JavaScript
7
star
33

gyn

Generate You some Ninja
Python
6
star
34

uttp

[Unfinished] libuv based HTTP server
C
6
star
35

dotfiles

My dotfiles
Shell
6
star
36

sylk-in-a-box

SylkServer + Sylk WebRTC client, in a box
Nginx
5
star
37

vim-colortoggle

A ViM plugin for toggling background and color scheme
Vim Script
5
star
38

yass

Yet Another SIP Softphone (archive)
Python
3
star
39

python-imap-prowl

A python script to sendpush notifications when new emails via Prowl push service
3
star
40

evergreen-requests

Evergreen + Requests
Python
3
star
41

notes

Notes about anything and everything
Python
2
star
42

jcfg

Jinja templates for your configuration files
Python
2
star
43

sipstache

The Ultimate Virtual Moustache Toolkit (TM)
Python
2
star
44

python-wsserver

[DEAD] A simple, single threaded WebSocket server
Python
2
star
45

python-asiri

GPIO interface for Asiri board with a MCP230XX chip
Python
1
star
46

python-imaplib2

Python threaded IMAP4 client module by Piers Lauder
Python
1
star
47

gvoice-sip-status

Google App Engine application to query the availability of Google Voice inbound SIP service
Python
1
star
48

docker-nginx-webdav

Docker image using nginx to serve files over WebDAV
1
star
49

sipwping-django

Web frontend for SIPwPing server, based on Django
JavaScript
1
star