When Waitress was introduced, numerous pure-Python WSGI servers were already available. This begs the question: why introduce another one?
Waitress is designed to be a practical solution for web framework developers who prioritize broad platform compatibility. While it might not be the absolute fastest or most feature-rich WSGI server, its strength lies in simplifying the complexities of platform support. It addresses the common issue of fragmented documentation and user confusion arising from inconsistent platform support among various WSGI servers circa 2012. For example, while gunicorn
is a robust choice, it lacks Windows compatibility. paste.httpserver
, although functional, does not support Python 3 and lacks a comprehensive test suite to ensure proper Python 3 implementation. wsgiref
, while broadly compatible across Python versions, is considered less performant and not recommended for production environments due to its single-threaded nature and unverified security.
At the time of Waitress’s inception, some WSGI servers claimed wide platform support and offered test suites. The CherryPy WSGI server, for instance, targeted both Python 2 and Python 3 and operated on both UNIX and Windows systems. However, it was tightly coupled with the CherryPy web framework, creating an inconvenient dependency for non-CherryPy frameworks seeking just a server component. Furthermore, the CherryPy server’s test suite was also intertwined with the framework, complicating independent use and testing. The CherryPy team’s initiative, Cheroot, aims to resolve this by creating a decoupled server component.
Waitress Server emerged as a fork of the WSGI components from zope.server
. zope.server
already possessed respectable framework-agnostic test coverage, which was further enhanced during the Waitress fork. Having existed in various forms since approximately 2001 and proven in production environments, Waitress isn’t entirely a “new” server. Instead, it represents a refined and repackaged version of a well-established and reliable server, making it a dependable choice for broad WSGI server needs.