Skip to main content

Small, asynchronous web server for use with Raspberry Pi Pico W boards and similar

Project description

pWebServer

Small, asynchronous web server for use with Raspberry Pi Pico W boards and similar

Background

I wanted something small and reusable to work with my raspberry pi pico w and didn't find anything in the wild. This is a work in progress, but I intend for it to be stable for at least my own use.

Notes

This library is not designed to be particularly fast, however it is intended to be easy to use.

HTTP Methods

Self-defined methods are not currently supported. PATCH, CONNECT, and TRACE are also not implmented

Paths

Simple paths are supported. Complex path matching is not supported.

For example, in some frameworks you might be able to define a path as

/some/path/to/:id

And that would populate the id property or some other variable with the value, for pWebServer that is not the case.

For dynamic data use query strings

Example (micropython):

from pWebServer import Server
import uasyncio as asyncio

sv = Server()
sv.add_default_route() # simply adds a route at / that returns 200 OK
loop = asyncio.get_event_loop()
loop.create_task(sv.start()) # Start serving for 0.0.0.0 (all ipv4 ips) on port 80

Requirements

python >=3.11 or micropython >=1.20

installing

python (with pypi)

pip install pWebServer

micropython (with mip & url)

Using repl:

import mip
mip.install("github:sjsadowski/pWebServer", version="latest")

Using mpremote:

mpremote mip install github:sjsadowski/pWebServer

Dependencies

MicroPython

MicroPython does not ship with the full set of Python Standard Libraries. For information about this, check the micropython-lib GitHub repo .

  • logging

Python

** None **

Development

- pytest >= 7.4.0
- pytest-asyncio >= 0.21.0
- httpx >= 0.24.1

To Do:

  • Cookie support
  • POST/PUT data support
  • HTTP/2.0(?)
  • Better test coverage

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

pwebserver-23.6a1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

pwebserver-23.6a1-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file pwebserver-23.6a1.tar.gz.

File metadata

  • Download URL: pwebserver-23.6a1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pwebserver-23.6a1.tar.gz
Algorithm Hash digest
SHA256 d2cadf42b29963123e95c05302a956e83da778a793b5074a8ab21f4a5b48fd19
MD5 728608ec606624436e11c19b61e22044
BLAKE2b-256 6ed2c923f152779e9933d6a09dcce2052585a14750d2b7e92e24b3513f1f0f4b

See more details on using hashes here.

File details

Details for the file pwebserver-23.6a1-py3-none-any.whl.

File metadata

  • Download URL: pwebserver-23.6a1-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for pwebserver-23.6a1-py3-none-any.whl
Algorithm Hash digest
SHA256 20368c903fad55c4c9ee5ac6816a5572857fe9e4b8dacdecd9adc981da1f2486
MD5 8460e373089f38e0afebe466989d2b7f
BLAKE2b-256 72085882b5b203c7eef6459fa559666b33e94277f9a13daf4add6593a3a2bc2b

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