Introduction
A library for leveraging pyramid infrastructure asynchronously using the new asyncio
.
Aiopyramid
provides tools for making web applications with Pyramid
and asyncio
.
It will not necessarily make your application run faster. Instead, it gives you some tools
and patterns to build an application on asynchronous servers.
Bear in mind that you will need to use asynchronous libraries for io where appropriate.
Since this library is built on relatively new technology, it is not intended for production use.
Getting Started
Aiopyramid
includes a scaffold that creates a "hello world" application,
check it out. The scaffold is designed to work with either gunicorn
_
via a custom worker or uWSGI
_ via the uWSGI asyncio plugin
_.
For example:
::
pip install aiopyramid gunicorn
pcreate -s aio_starter <project>
cd <project>
python setup.py develop
pserve development.ini
There is also a websocket
scaffold aio_websocket
for those who basic tools for setting up
a websocket
server.
Documentation
Full documentation for Aiopyramid
can be found here
_.
.. _gunicorn: http://gunicorn.org
.. _uWSGI: https://github.com/unbit/uwsgi
.. _uWSGI asyncio plugin: http://uwsgi-docs.readthedocs.org/en/latest/asyncio.html
.. _here: http://aiopyramid.readthedocs.io/
Changes
.. :changelog:
0.4.1 (2016-06-04)
- Fix dependency mismatch for cases of aiohttp > 1.0 but < 2.0
0.4.0 (2016-05-29)
- Refactor to support latests aiohttp
0.3.7 (2017-05-07)
- Peg aiohttp dependency
0.3.6 (2016-09-22)
- Fix header normalization for Gunicorn
0.3.5 (2016-02-18)
- Fix Gunicorn logging support
0.3.4 (2016-02-03)
- Fix compatiblity with websockets 3+
0.3.3 (2015-11-21)
- Merge fix for `ignore_websocket_closed` to allow chained exceptions
- Add option to coerce bytes to str for uwsgi websockets
0.3.2 (2015-09-24)
- Support Python3.5
0.3.1 (2015-01-31)
- Fix issues related to POST requests
- Fix issues related to coroutine mappers
- Sync with Gunicorn settings a la issue #917
0.3.0 (2014-12-06)
- Add sphinx
- Migrate README to sphinx docs
- Add helpers for authentication
- Deprecated aiopyramid.traversal, use aiopyramid.helpers.synchronize
- Deprecated aiopyramid.tweens, moved examples to docs
0.2.4 (2014-10-06)
- Fix issue with gunicorn websockets
- Fix issue with class-based view mappers
0.2.3 (2014-10-01)
- Fix issue with `synchronize`
0.2.2 (2014-09-30)
- Update example tween to work with gunicorn
- Add kwargs support to helpers
- Add tox for testing
- Add decorator `synchronize` for wrapping coroutines
- Refactored mappers and tween example to use `synchronize`
- Bug fixes
0.2.1 (2014-09-15)
- Update scaffold example tests
- Add test suite
- Update README
0.2.0 (2014-09-01)
- Update README
- added websocket mappers for uwsgi and gunicorn
- added websocket view class
0.1.2 (2014-08-02)
- Update MANIFEST.in
0.1.0 (2014-08-01)
- Update README ready for release
- Added asyncio traverser (patched from `ResourceTreeTraverser`)
- Added custom gunicorn worker
- Fix issue with uwsgi and executor threads
- Update starter scaffold
0.0.3 (2014-07-30)
- Moving to an extension-based rather than patched-based approach
- removed most code based on pyramid_asyncio except testing and scaffolds
- added view mappers for running views in asyncio
- added example tween that can come before or after synchronous tweens
0.0.2 (2014-07-22)
- Removed Gunicorn specific code
- disabled excview_tween_factory
- made viewresult_to_response a coroutine
- added dummy code for testing with uwsgi
0.0.1 (2014-07-22)
- Migrated from pyramid_asyncio (Thank you Guillaume)
- Removed worker.py and Gunicorn dependency
- Added greenlet dependency
- Changed contact information in setup.py