Low level event reactor for Pyjoyment with asyncio support.
Project description
Pyjo-Reactor-Asyncio
Low level event reactor with asyncio support for Pyjoyment.
Pyjoyment
An asynchronous, event driver web framework for the Python programming language.
Pyjoyment provides own reactor which handles I/O and timer events in its own main event loop but it supports other loops, ie. libev or asyncio.
asyncio
This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives.
The asyncio module was designed in PEP3156. For a motivational primer on transports and protocols, see PEP3153.
Trollius
Trollius is a portage of the asyncio project (PEP3156) on Python 2. Trollius works on Python 2.6-3.5.
Examples
Non-blocking TCP client/server
import Pyjo.Reactor.Asyncio
import Pyjo.IOLoop
# Listen on port 3000
@Pyjo.IOLoop.server(port=3000)
def server(loop, stream, cid):
@stream.on
def read(stream, chunk):
# Process input chunk
print("Server: {0}".format(chunk.decode('utf-8')))
# Write response
stream.write(b"HTTP/1.1 200 OK\x0d\x0a\x0d\x0a")
# Disconnect client
stream.close_gracefully()
# Connect to port 3000
@Pyjo.IOLoop.client(port=3000)
def client(loop, err, stream):
@stream.on
def read(stream, chunk):
# Process input
print("Client: {0}".format(chunk.decode('utf-8')))
# Write request
stream.write(b"GET / HTTP/1.1\x0d\x0a\x0d\x0a")
# Add a timer
@Pyjo.IOLoop.timer(3)
def timeouter(loop):
print("Timeout")
# Shutdown server
loop.remove(server)
# Start event loop
Pyjo.IOLoop.start()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for Pyjo-Reactor-Asyncio-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 289da0cceb271f23b27cb2b6cc8f9ce3311acc361e98ba13f240481d825cbac3 |
|
MD5 | 54cc33976d2a2ba47aa34dd8bd7359a6 |
|
BLAKE2b-256 | e4bee70cbb7cf044de743701380abcb2304874d298184e10233ac4f52c8a431e |
Hashes for Pyjo_Reactor_Asyncio-0.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe0c1b2fb14a518eed73d57e00e1d36ab9682b3c0a058baff41ebf7a7c2437b5 |
|
MD5 | b31818d3a5118c480d6389119d850d55 |
|
BLAKE2b-256 | 744f3b32edd7bb940c921ae228fed68c5b6861230865d2ef34192bc0486d04cb |