Home

Awesome

Nanoweb

Nanoweb is a full asynchronous web server for micropython created in order to benefit from a correct ratio between memory size and features.

It is thus able to run on an ESP8266, ESP32, Raspberry Pico, etc...

Features

Installation

You just have to copy the nanoweb.py file on the target (ESP32, Nano, etc...).

Use

See the example.py file for an advanced example where you will be able to:

And this is a simpler example:

import uasyncio
from nanoweb import Nanoweb

naw = Nanoweb()

async def api_status(request):
    """API status endpoint"""
    await request.write("HTTP/1.1 200 OK\r\n")
    await request.write("Content-Type: application/json\r\n\r\n")
    await request.write('{"status": "running"}')

# You can declare route from the Nanoweb routes dict...
naw.routes = {
    '/api/status': api_status,
}

# ... or declare route directly from the Nanoweb route decorator
@naw.route("/ping")
async def ping(request):
    await request.write("HTTP/1.1 200 OK\r\n\r\n")
    await request.write("pong")

loop = asyncio.get_event_loop()
loop.create_task(naw.run())
loop.run_forever()

Contribute