Skip to main content

A web framework based on ASGI

Project description


# Nardis

A web framework based on ASGI. This is inspired by the Express framework for node.js.

# Current status

This API is *extremely* experimental, and is subject to change at any time.

I do not recommend using it for production purposes, but I would love to get feedback.


# Requirements

Written with Python 3.7, no guarantee it will work on earlier versions (although I think 3.6 would work fine).

# Installation

## Via pip

Run the following:

```
$ pip install nardis
```

## From source

To build from source, clone this repo, and then:

```
$ python setup.py install
```

# Example

Here's a quick example you can use. Create an `application.py` and copy and paste this:

```python
from nardis.asgi import main
from nardis.routing import Get, Post
import asyncio


template_start = """
<!doctype html>
<head><title>example</title></head>
<body>
<h1>He's down!</h1>
"""

template_end = """
</body>
"""

async def index(req, res):
await res.send(template_start, more=True)
for x in range(10, 0, -1):
await res.send(f"<p>{x}!</p>", more=True)
await asyncio.sleep(1)
await res.send("<p>It's over. TKO!</p>", more=True)
await res.send(template_end)


routes = [
Get(r"^/?$", index),
]

app = main(routes) # this is the ASGI application

if __name__ == '__main__':
from uvicorn.run import run
run(app, '127.0.0.1', 8000)
```

And then:

```
$ python application.py
```

This should start a server on http://127.0.0.1


# Using other web servers

Uvicorn is currently a dependency of Nargis for local development.

Nargis should also work with other ASGI-based web servers, like Daphne.

To get Daphne working with the example code above, you could do the following:

```
$ daphne application:app
```


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

nardis-0.0.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

nardis-0.0.3-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file nardis-0.0.3.tar.gz.

File metadata

  • Download URL: nardis-0.0.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nardis-0.0.3.tar.gz
Algorithm Hash digest
SHA256 34878e806edc6e151caadd261342eb9cabc12297f1ac3cfa4867284358c03ee1
MD5 fc72fa0ab4e314a3db17ccc08b9016e2
BLAKE2b-256 e67e60ba8d5c4c06b78d49b26331c8f44d665988f1c9ab3b39d3fbee01734755

See more details on using hashes here.

File details

Details for the file nardis-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for nardis-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ce4485b126fbc002e6717d7e6b0f84e36b7f72ccf190176a8dd4daaa7dc5c485
MD5 d2c0fea423611472083dfbd93ae7e4a5
BLAKE2b-256 a26e80a332fcd225a3740da3f002c5271e85abe1e96a7e7fa66983a26f0ded0e

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