Skip to main content

Aquilify is an ASGI (Asynchronous Server Gateway Interface) framework designed to facilitate the development of web applications with Python. It enables efficient handling of HTTP requests, WebSocket connections, middleware processing, and exception handling in an asynchronous environment.

Project description

IMG-20231115-232824

Documentation: http://www.aquilify.vvfin.in/


AQUILIFY

Aquilify is an ASGI (Asynchronous Server Gateway Interface) framework designed to facilitate the development of web applications with Python. It enables efficient handling of HTTP requests, WebSocket connections, middleware processing, and exception handling in an asynchronous environment.

Installation

$ pip install aquilify
Or you can install the aquilify[full]
$ pip install aquilify[full]

Basic Setup

Create a new aquilify app using the command show below :

$ aquilify create-app myapp

Now, move inside the myapp and run :

$ aquilify runserver

To make changes in ASGI server configuration open myapp/config.cfg :

Default Configuration :

[ASGI_SERVER]
server = NETIX
host = 127.0.0.1
port = 8000
debug = True
reload = False
instance = asgi:application

visit: http://localhost:8000

output:

IMG-20231115-232824

Creating views

myapp/views.py

async def myview() -> dict:
  return {"message": "Welcome to aquilify"}, 200

myapp/routing.py

from aquilify.core.routing import rule

import views

ROUTER = [
  rule('/', view.myview)
]

run server

$ aquilify runserver
Starting Netix v1.12 (cpython 3.12.1, win32)
------------------------------------------------------------------------
Options:
  run(host=127.0.0.1, port=8000, reuse_port=True, worker_num=1, ssl={}, debug=True, app=asgi:application, log_level=DEBUG)
------------------------------------------------------------------------
[2024-01-08 15:48:19] Netix detected Aquilify starting.. : Aquilify
[2024-01-08 15:48:19,421] INFO: lifespan: startup
[2024-01-08 15:48:19,423] INFO: lifespan.startup.complete
[2024-01-08 15:48:20] Netix (ASGI) (pid 17892) is started at 127.0.0.1 port 8000

output : http://localhost:8000/ :

{
    "message": "Welcome to aquilify"
}

Credits

  • Thanks to starlette.
  • This project uses code adapted from the Starlette framework.

Dependencies

Aquilify only requires anyio, and the following are optional:

  • [aiofiles][aiofile] - Required if you want to use the StaticMIddleware or File based Opertation.
  • [jinja2][jinja2] - Required if you want to use TemplateResponse.
  • [python-multipart][python-multipart] - Required if you want to support form parsing, with request.form().
  • [itsdangerous][itsdangerous] - Required for SessionMiddleware and CSRF support.
  • [markupsafe][markupsafe] - Required for Jinja2 and CSRF support.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aquilify-1.17.tar.gz (275.1 kB view details)

Uploaded Source

Built Distribution

aquilify-1.17-py3-none-any.whl (393.3 kB view details)

Uploaded Python 3

File details

Details for the file aquilify-1.17.tar.gz.

File metadata

  • Download URL: aquilify-1.17.tar.gz
  • Upload date:
  • Size: 275.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for aquilify-1.17.tar.gz
Algorithm Hash digest
SHA256 8e9802453fd5d324ed6104692780a76bab09ed12c08061b9efd72f60f7687c18
MD5 6f1d4d8e83b5a43b592991af6767d4a8
BLAKE2b-256 cc182ecaec90c8d03cbf5ba45c632ebcfab58f0b46be25448c5dbff63219953e

See more details on using hashes here.

File details

Details for the file aquilify-1.17-py3-none-any.whl.

File metadata

  • Download URL: aquilify-1.17-py3-none-any.whl
  • Upload date:
  • Size: 393.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for aquilify-1.17-py3-none-any.whl
Algorithm Hash digest
SHA256 be165caf78b4e7933a64d39828fef64073a1a9abc11b814ad08ccacca3c31556
MD5 ca531d75109de592f033d60f2263775f
BLAKE2b-256 4c82a1e688e901521d1c1363f629e72639956d2574fed17fd509814ed04dae9c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page