Goals
- Ideally we want minimal dependencies and zero configuration for ease of maintenance.
- Something that's integrated into python would be good but a standalone binary would also work.
- Lightweight is desirable, however, performance should not be a major issue with only ~40 simultaneous connections.
Our options thus far:
name | language | depends on | comments | |
gpack | Python | git, gevent | Git "smart" protocol (http) server implemented in python as a wsgi app | |
aiohttp | Python3 | Python >= 3.4.1, chardet or cchardet | Simple asyncio http implementation. Requires just a bit of boilerplate python code to manage the server. | |
twistd | Python | A bunch of them | twisted does include a standalone web server as an example, and packages are in debian/ubuntu. It fails the 'lightweight' and 'simple' goals though. | |
SimpleHTTPServer | Python | Python | No extra dependencies and no configuration required. | |
Gunicorn | Python | Ubuntu >= 12.04 or Debian Jessie | WSGI server front-end. This or uWSGI could be used as a front-end for gpack or sina | |
uWSGI | Python | ? | WSGI server front-end. Apparently this is already used in production as a front-end for other WMF services. | |
Performance/dependency testing/benchmark things