Skip to main content

Low level event reactor for Pyjoyment with asyncio support.

Project description

https://img.shields.io/pypi/v/Pyjo-Reactor-Asyncio.png https://travis-ci.org/dex4er/Pyjo-Reactor-Asyncio.png?branch=master https://readthedocs.org/projects/pyjo-reactor-asyncio/badge/?version=latest

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.

See http://www.pyjoyment.net/

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.

See http://asyncio.org/

Trollius

Trollius is a portage of the asyncio project (PEP3156) on Python 2. Trollius works on Python 2.6-3.5.

See https://trollius.readthedocs.org/

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Pyjo-Reactor-Asyncio-0.0.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

Pyjo_Reactor_Asyncio-0.0.1-py2.py3-none-any.whl (7.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Pyjo-Reactor-Asyncio-0.0.1.tar.gz.

File metadata

File hashes

Hashes for Pyjo-Reactor-Asyncio-0.0.1.tar.gz
Algorithm Hash digest
SHA256 289da0cceb271f23b27cb2b6cc8f9ce3311acc361e98ba13f240481d825cbac3
MD5 54cc33976d2a2ba47aa34dd8bd7359a6
BLAKE2b-256 e4bee70cbb7cf044de743701380abcb2304874d298184e10233ac4f52c8a431e

See more details on using hashes here.

File details

Details for the file Pyjo_Reactor_Asyncio-0.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for Pyjo_Reactor_Asyncio-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fe0c1b2fb14a518eed73d57e00e1d36ab9682b3c0a058baff41ebf7a7c2437b5
MD5 b31818d3a5118c480d6389119d850d55
BLAKE2b-256 744f3b32edd7bb940c921ae228fed68c5b6861230865d2ef34192bc0486d04cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page