Skip to main content

Multiprocessing based aiohttp application runner

Project description

aiohttp-serve

CI Coverage Status PyPI version

aiohttp-serve package allows you to run aiohttp.web.Application on multiple workers/processes (if for some reason you don't want to use external servers such as gunicorn etc.)

Requirements

  • Python >= 3.7
  • aiohttp >= 3.7.4
  • PyYAML>=5.4.1 (optional)

Installation

pip install aiohttp-serve

Usage

web.py
from aiohttp import web


async def index(request):
    return web.Response(body='Hello world')


app = web.Application()
app.router.add_get('/', index)

simple usage:

from aiohttp_serve import serve

if __name__ == '__main__':
    serve(
        'web:app',
        host='127.0.0.1',
        port=8080,
        workers=4,
    )

bind to multiple host/port/path:

from aiohttp_serve import serve

if __name__ == '__main__':
    serve(
        'web:app',
        bind=[
            'http://127.0.0.1:80',
            'https://127.0.0.1:443',
            'unix:/path/to/unix/socket.sock',
        ],
        workers=4,
        ssl_certfile='/path/to/cert.crt',
        ssl_keyfile='/path/to/key.key',
    )

logging:

Just configure logging at module level

import yaml
import logging.config

from aiohttp_serve import serve

with open('./examples/logging.yaml', mode='r') as f:
    logging.config.dictConfig(yaml.safe_load(f))

if __name__ == '__main__':
    serve(
        'web:app',
        host='127.0.0.1',
        port=8080,
        workers=4,
    )

of use log_config arg (dict, .json or .yaml or .conf file)

from aiohttp_serve import serve

if __name__ == '__main__':
    serve(
        'web:app',
        host='127.0.0.1',
        port=8080,
        workers=4,
        log_config='./examples/logging.yaml',
    )

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

aiohttp_serve-0.2.2.tar.gz (10.9 kB view hashes)

Uploaded Source

Built Distribution

aiohttp_serve-0.2.2-py3-none-any.whl (13.3 kB view hashes)

Uploaded Python 3

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