Watson - A Python 3 Web Framework

It’s elementary my dear Watson

Build Status Coverage Status Version Downloads Licence

Watson is an easy to use framework designed to get out of your way and let you code your application rather than spend time wrangling with the framework. It follows the convention over configuration ideal, although the convention can be overriden if required. Out of the box it comes with a standard set of defaults to allow you to get coding straight away!


Watson is designed for Python 3.3 and up.


Watson currently requires the following modules to work out of box:

These will be installed automatically if you have installed Watson via pip.

Optional Dependencies

Some packages within Watson require third party packages to run correctly, these include:

Notes about these dependencies can be found within the relevant documentation in the Reference Library.


pip install watson-framework


Watson can be tested with py.test. Simply activate your virtualenv and run python setup.py test.


Using falcon-bench, Watson received the following requests per second (Django and Flask supplied for comparative purposes).

  1. watson.........11,920 req/sec or 83.89 μs/req (3x)
  2. django..........7,696 req/sec or 129.94 μs/req (2x)
  3. flask...........4,281 req/sec or 233.58 μs/req (1x)


If you would like to contribute to Watson, please feel free to issue a pull request via Github with the associated tests for your code. Your name will be added to the AUTHORS file under contributors.

Table of Contents