AIOWSGI-SERVE(1)

πŸ“¦ version 0.7, in ubuntu jammy

✨ NAME ✨

aiowsgi-serve is a minimalist WSGI server that uses async πŸ¦‹ It's filed under User Commands, obviously πŸ’…

aiowsgi-serve β€” minimalist WSGI server using async 🌈


πŸŽ€ DESCRIPTION πŸŽ€

okay so this is how you call it, bestie πŸ’–

aiowsgi-serve [OPTS] MODULE:OBJECT

πŸ’… Standard options πŸ’…

  • --help β€” pulls up this whole info dump again πŸ™ˆ
  • --call β€” calls the given object to get the WSGI application ✨
  • --host=ADDR β€” the hostname or IP address to listen on 🌸 The default is '0.0.0.0', which means "all IP addresses on this host" 🌍
    • ⚠️ Note: may not be used together with --listen πŸ™…β€β™€οΈ
  • --port=PORT β€” the TCP port to listen on πŸ“ The default is '8080'
    • ⚠️ Note: may not be used together with --listen πŸ™…β€β™€οΈ
  • --listen=ip:port β€” tells waitress to listen on an ip + port combo πŸ¦‹ Here's the vibe:
--listen=127.0.0.1:8080 --listen=[::1]:8080 --listen=*:8080

This option can be used multiple times to listen on multiple sockets, iconic πŸ‘‘ A wildcard for the hostname is supported too, and it'll bind to both IPv4 and IPv6 depending on whether they're enabled or disabled.

  • --[no-]ipv4 β€” toggles IPv4 support on or off 🌷 Like, here's how you turn it off:
--no-ipv4

This disables IPv4 socket support. It also affects wildcard matching when generating the list of sockets.

  • --[no-]ipv6 β€” toggles IPv6 support on or off 🧚 Here's how you turn it on:
--no-ipv6

This turns on IPv6 socket support. It also affects wildcard matching when generating a list of sockets.

  • --unix-socket=PATH β€” the path of a Unix socket πŸ”Œ If you specify a socket path, a Unix domain socket gets made instead of the usual inet domain socket.
    • > 😭 Not available on Windows, sorry bestie.
  • --unix-socket-perms=PERMS β€” octal permissions for the Unix domain socket πŸ” The default is '600'.
  • --url-scheme=STR β€” the default wsgi.url_scheme value 🌐 The default is 'http'.
  • --url-prefix=STR β€” this sets the SCRIPT_NAME WSGI environment value πŸ’« Setting it to anything except the empty string makes the WSGI SCRIPT_NAME value the value you passed, minus any trailing slashes you add. It also strips that prefix off the PATH_INFO of any request that starts with it. The default is the empty string.
  • --ident=STR β€” the server identity used in the 'Server' header in responses πŸŽ€ The default is 'waitress'.

πŸ”₯ Tuning options πŸ”₯

  • --threads=INT β€” the number of threads used to process application logic 🧡 The default is 4.
  • --backlog=INT β€” the connection backlog for the server πŸ“₯ The default is 1024.
  • --recv-bytes=INT β€” how many bytes to request when calling socket.recv() πŸ“¦ The default is 8192.
  • --send-bytes=INT β€” how many bytes to send to socket.send() πŸ“€ The default is 18000. Multiples of 9000 should avoid partly-filled TCP packets, which is giving efficiency πŸ’…
  • --outbuf-overflow=INT β€” a temporary file gets created if the pending output is larger than this πŸ—‚οΈ The default is 1048576 (1MB).
  • --inbuf-overflow=INT β€” a temporary file gets created if the pending input is larger than this πŸ—ƒοΈ The default is 524288 (512KB).
  • --connection-limit=INT β€” stops creating new channels if too many are already active 🚦 The default is 100.
  • --cleanup-interval=INT β€” the minimum number of seconds between cleaning up inactive channels 🧹 The default is 30. See '--channel-timeout'.
  • --channel-timeout=INT β€” the maximum number of seconds to leave inactive connections open ⏳ The default is 120. "Inactive" is defined as "has received no data from the client and has sent no data to the client" πŸ«₯
  • --[no-]log-socket-errors β€” toggles whether premature client disconnect tracebacks get logged πŸͺ΅ It's on by default.
  • --max-request-header-size=INT β€” the maximum size of all request headers combined πŸ“œ The default is 262144 (256KB).
  • --max-request-body-size=INT β€” the maximum size of a request body 🍱 The default is 1073741824 (1GB).
  • --[no-]expose-tracebacks β€” toggles whether tracebacks of unhandled exceptions get exposed to the client πŸ™ˆ It's off by default.
  • --asyncore-loop-timeout=INT β€” the timeout value in seconds passed to asyncore.loop() ⏱️ The default is 1.
  • --asyncore-use-poll β€” the use_poll argument passed to asyncore.loop() πŸ¦‹ It helps overcome the open file descriptors limit. The default is False.

🌈 LICENSE 🌈

MIT 🌸

πŸ‘‘ AUTHOR πŸ‘‘

Gael Pasgrimaud πŸ’œ


πŸ¦‹ aiowsgi-serve 0.7 Β· November 2018 Β· love you, bestie πŸ’–

πŸ“¦ where this page comes from