Metadata-Version: 2.1
Name: waitress
Version: 1.3.1
Summary: Waitress WSGI server
Home-page: https://github.com/Pylons/waitress
Author: Zope Foundation and Contributors
Author-email: zope-dev@zope.org
Maintainer: Pylons Project
Maintainer-email: pylons-discuss@googlegroups.com
License: ZPL 2.1
Keywords: waitress wsgi server http
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Provides-Extra: docs
Requires-Dist: Sphinx (>=1.8.1) ; extra == 'docs'
Requires-Dist: docutils ; extra == 'docs'
Requires-Dist: pylons-sphinx-themes (>=1.0.9) ; extra == 'docs'
Provides-Extra: testing
Requires-Dist: nose ; extra == 'testing'
Requires-Dist: coverage ; extra == 'testing'

Waitress
========

.. image:: https://img.shields.io/pypi/v/waitress.svg
    :target: https://pypi.org/project/waitress/
    :alt: latest version of waitress on PyPI

.. image:: https://travis-ci.org/Pylons/waitress.png?branch=master
        :target: https://travis-ci.org/Pylons/waitress
        :alt: Travis CI for waitress (master branch)

.. image:: https://readthedocs.org/projects/waitress/badge/?version=master
        :target: https://docs.pylonsproject.org/projects/waitress/en/master
        :alt: master Documentation Status

.. image:: https://img.shields.io/badge/irc-freenode-blue.svg
        :target: https://webchat.freenode.net/?channels=pyramid
        :alt: IRC Freenode

Waitress is meant to be a production-quality pure-Python WSGI server with very
acceptable performance.  It has no dependencies except ones which live in the
Python standard library.  It runs on CPython on Unix and Windows under Python
2.7+ and Python 3.4+.  It is also known to run on PyPy 1.6.0+ on UNIX.  It
supports HTTP/1.0 and HTTP/1.1.

For more information, see the "docs" directory of the Waitress package or visit https://docs.pylonsproject.org/projects/waitress/en/latest/


1.3.1 (2019-08-27)
------------------

Bugfixes
~~~~~~~~

- Waitress won't accidentally throw away part of the path if it starts with a
  double slash (``GET //testing/whatever HTTP/1.0``). WSGI applications will
  now receive a ``PATH_INFO`` in the environment that contains
  ``//testing/whatever`` as required. See
  https://github.com/Pylons/waitress/issues/260 and
  https://github.com/Pylons/waitress/pull/261


1.3.0 (2019-04-22)
------------------

Deprecations
~~~~~~~~~~~~

- The ``send_bytes`` adjustment now defaults to ``1`` and is deprecated
  pending removal in a future release.
  and https://github.com/Pylons/waitress/pull/246

Features
~~~~~~~~

- Add a new ``outbuf_high_watermark`` adjustment which is used to apply
  backpressure on the ``app_iter`` to avoid letting it spin faster than data
  can be written to the socket. This stabilizes responses that iterate quickly
  with a lot of data.
  See https://github.com/Pylons/waitress/pull/242

- Stop early and close the ``app_iter`` when attempting to write to a closed
  socket due to a client disconnect. This should notify a long-lived streaming
  response when a client hangs up.
  See https://github.com/Pylons/waitress/pull/238
  and https://github.com/Pylons/waitress/pull/240
  and https://github.com/Pylons/waitress/pull/241

- Adjust the flush to output ``SO_SNDBUF`` bytes instead of whatever was
  set in the ``send_bytes`` adjustment. ``send_bytes`` now only controls how
  much waitress will buffer internally before flushing to the kernel, whereas
  previously it used to also throttle how much data was sent to the kernel.
  This change enables a streaming ``app_iter`` containing small chunks to
  still be flushed efficiently.
  See https://github.com/Pylons/waitress/pull/246

Bugfixes
~~~~~~~~

- Upon receiving a request that does not include HTTP/1.0 or HTTP/1.1 we will
  no longer set the version to the string value "None". See
  https://github.com/Pylons/waitress/pull/252 and
  https://github.com/Pylons/waitress/issues/110

- When a client closes a socket unexpectedly there was potential for memory
  leaks in which data was written to the buffers after they were closed,
  causing them to reopen.
  See https://github.com/Pylons/waitress/pull/239

- Fix the queue depth warnings to only show when all threads are busy.
  See https://github.com/Pylons/waitress/pull/243
  and https://github.com/Pylons/waitress/pull/247

- Trigger the ``app_iter`` to close as part of shutdown. This will only be
  noticeable for users of the internal server api. In more typical operations
  the server will die before benefiting from these changes.
  See https://github.com/Pylons/waitress/pull/245

- Fix a bug in which a streaming ``app_iter`` may never cleanup data that has
  already been sent. This would cause buffers in waitress to grow without
  bounds. These buffers now properly rotate and release their data.
  See https://github.com/Pylons/waitress/pull/242

- Fix a bug in which non-seekable subclasses of ``io.IOBase`` would trigger
  an exception when passed to the ``wsgi.file_wrapper`` callback.
  See https://github.com/Pylons/waitress/pull/249


