Metadata-Version: 2.0
Name: roll
Version: 0.2.0
Summary: Async pico server that rolls.
Home-page: https://framagit.org/drone/roll
Author: Yohan Boniface
Author-email: yohan.boniface@data.gouv.fr
License: WTFPL
Keywords: async asyncio http server
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: httptools (==0.0.9)
Requires-Dist: kua (==0.1)
Requires-Dist: uvloop (==0.8.0)
Provides-Extra: docs
Requires-Dist: mkdocs; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'

# Let’s roll.

# Philosophy

Make it small to make it big.

Roll is a pico framework with performances and aesthetic in mind.

## Install

    pip install roll


## Getting started

    from roll import Roll

    myapp = Roll()

    @myapp.route('/hello/:parameter')
    async def hello(request, response, parameter='world'):
        response.body = f'Hello {parameter}'


## Contains

* async everywhere
* basic routing through [kua](https://github.com/nitely/kua)
* extensible system through hooks, see extensions for inspiration
* decent HTTP errors


## Does NOT contain

* templating system
* stability (yet!)


## Run

    gunicorn path.to.your:app --bind 0.0.0.0:3579 --worker-class roll.worker.Worker --workers 4

You can try with `example:app` for instance.


## Running the tests

Roll exposes a pytest fixture (`client`), and for this needs to be properly
installed so pytest sees it. Once in the roll root (and with your virtualenv
active), run:

    python setup.py develop

Then you can run the tests:

    py.test


