reserve is a generic Python server (and server library). It means it’s able to host any type of application, not only wsgi apps like the web servers do.
Requirements:
sdlaunch - reserve doesn’t contain socket opening nor daemonizing code, it depends on sdlaunch for that (or alternatively you can use systemd socket activation)
fdsocket - python’s sockets, when creating them from a file descriptor, require their user to provide some information unobtainable from Python, but easy to get from C. fdsocket provides that information.
Usage
sdlaunch -b "[::]:80" -- reserve app [args...]
where:
:: is the IPv6 address to listen on (:: means all)
80 is the port
app is the name of application you want to serve
[args...] is a list of arguments to pass to the application (optional)
Application definition
Application is a python module containing a launch(args) callable - where args is an array of strings.
It should return a request handler callable - handle(socket, client_address, server), where:
socket is a newly opened socket
client_address is a tuple containing client’s IP and port
server is a TCPServer object that you probably should not touch
Bundled applications
reserve currently bundles only one reserve app - http. Together with wsgi subapplication it can be used to serve WSGI apps.
The API for writing subapplications of http is currently undocumented and considered a implementation detail. You should not use it, as it might change at any point in the future. Still, you may use it together with wsgi - as that is guaranteed to remain backwards compatible.
Serving WSGI apps
sdlaunch -b "[::]:80" -- reserve app http wsgi wsgi-app-name [args...]
where wsgi-app-name is a python module containing a launch(args) callable (like with normal reserve app)
It should return a WSGI (PEP 3333) application callable.
Warning: You should not use reserve.http in production. You should serve your application as SCGI/FCGI/… instead and use a real web server as a frontend.
reserve does not currently support SCGI/FCGI/…, but in the near future it will.
Metadata
Release files for reserve 0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reserve-0.3.tar.gz | 6.8 kB | Details |
Release files / reserve-0.3.tar.gz
| Download URL | reserve-0.3.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4afb9f40aa47c49d53b45c19524adf6865536cee7e27700d15f2c813c91edb8
|
|
BLAKE2b-256 checksum How to use checksums |
cec63e0a465bbd2432968eeb343f7ee5aeee7d6829880027b471a8a2732a0e23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |