mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
swap uvicorn out for hypercorn
uvicorn is subjectively nicer to play with for local dev work, but hypercorn is required in order to do HTTP/2 which is fairly performance-important. Signed-off-by: Kevin Morris <kevr@0cost.org> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org> Co-authored-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
This commit is contained in:
parent
bab74dd307
commit
19652d6cbe
3 changed files with 13 additions and 6 deletions
|
@ -11,7 +11,7 @@ before_script:
|
|||
base-devel git gpgme protobuf pyalpm python-mysql-connector
|
||||
python-pygit2 python-srcinfo python-bleach python-markdown
|
||||
python-sqlalchemy python-alembic python-pytest python-werkzeug
|
||||
python-pytest-tap python-fastapi uvicorn nginx python-authlib
|
||||
python-pytest-tap python-fastapi hypercorn nginx python-authlib
|
||||
python-itsdangerous python-httpx
|
||||
|
||||
test:
|
||||
|
|
3
INSTALL
3
INSTALL
|
@ -48,7 +48,8 @@ read the instructions below.
|
|||
4) Install Python modules and dependencies:
|
||||
|
||||
# pacman -S python-mysql-connector python-pygit2 python-srcinfo python-sqlalchemy \
|
||||
python-bleach python-markdown python-alembic
|
||||
python-bleach python-markdown python-alembic python-jinja \
|
||||
python-itsdangerous python-authlib python-httpx hypercorn
|
||||
# python3 setup.py install
|
||||
|
||||
5) Create a new MySQL database and a user and import the aurweb SQL schema:
|
||||
|
|
|
@ -24,6 +24,7 @@ import aurweb.schema
|
|||
children = []
|
||||
temporary_dir = None
|
||||
verbosity = 0
|
||||
asgi_backend = ''
|
||||
|
||||
|
||||
class ProcessExceptions(Exception):
|
||||
|
@ -31,6 +32,7 @@ class ProcessExceptions(Exception):
|
|||
Compound exception used by stop() to list all the errors that happened when
|
||||
terminating child processes.
|
||||
"""
|
||||
|
||||
def __init__(self, message, exceptions):
|
||||
self.message = message
|
||||
self.exceptions = exceptions
|
||||
|
@ -110,10 +112,11 @@ def start():
|
|||
|
||||
# FastAPI
|
||||
host, port = aurweb.config.get("fastapi", "bind_address").rsplit(":", 1)
|
||||
spawn_child(["python", "-m", "uvicorn",
|
||||
"--host", host,
|
||||
"--port", port,
|
||||
"aurweb.asgi:app"])
|
||||
if asgi_backend == "hypercorn":
|
||||
portargs = ["-b", f"{host}:{port}"]
|
||||
elif asgi_backend == "uvicorn":
|
||||
portargs = ["--host", host, "--port", port]
|
||||
spawn_child(["python", "-m", asgi_backend] + portargs + ["aurweb.asgi:app"])
|
||||
|
||||
# nginx
|
||||
spawn_child(["nginx", "-p", temporary_dir, "-c", generate_nginx_config()])
|
||||
|
@ -158,8 +161,11 @@ if __name__ == '__main__':
|
|||
description='Start aurweb\'s test server.')
|
||||
parser.add_argument('-v', '--verbose', action='count', default=0,
|
||||
help='increase verbosity')
|
||||
parser.add_argument('-b', '--backend', choices=['hypercorn', 'uvicorn'], default='hypercorn',
|
||||
help='asgi backend used to launch the python server')
|
||||
args = parser.parse_args()
|
||||
verbosity = args.verbose
|
||||
asgi_backend = args.backend
|
||||
with tempfile.TemporaryDirectory(prefix="aurweb-") as tmpdirname:
|
||||
temporary_dir = tmpdirname
|
||||
start()
|
||||
|
|
Loading…
Add table
Reference in a new issue