miguelgrinberg/microdot

Mirror of https://code.miguelgrinberg.com/miguelgrinberg/microdot

Python

2,151

416 commits

updated Sep 19, 2026

See the code

README

Microdot

tests

“The impossibly small web framework for Python and MicroPython”

Microdot is a minimalistic Python web framework inspired by Flask. Given its small size, it can run on systems with limited resources such as microcontrollers. Both standard Python (CPython) and MicroPython are supported.

from microdot import Microdot

app = Microdot()

@app.route('/')
async def index(request):
    return 'Hello, world!'

app.run()

Resources

The following links are for legacy version 1 of Microdot:

Note that version 1 is no longer maintained, so you should consider migrating to version 2. See the migration notes for help.

Roadmap

The following features are planned for future releases of Microdot, both for MicroPython and CPython:

  • Authentication support, similar to Flask-Login for Flask (Added in version 2.1)
  • Support for forms encoded in multipart/form-data format (Added in version 2.2)
  • CSRF protection extension (Added in version 2.5)
  • Type hints (Added in version 2.6)
  • Pub/sub mini-framework for WebSocket and SSE
  • OpenAPI integration, similar to APIFairy for Flask

Do you have other ideas to propose? Let's discuss them!

This project relies on contributions from its users. If you benefit from it please consider making a single or ongoing monetary contribution in one of the following platforms:

Thank you!

http
micropython
python
webapp
webserver

miguelgrinberg/microdot

Mirror of https://code.miguelgrinberg.com/miguelgrinberg/microdot

Python

2,151

416 commits

updated Sep 19, 2026

See the code

README

Microdot

tests

“The impossibly small web framework for Python and MicroPython”

Microdot is a minimalistic Python web framework inspired by Flask. Given its small size, it can run on systems with limited resources such as microcontrollers. Both standard Python (CPython) and MicroPython are supported.

from microdot import Microdot

app = Microdot()

@app.route('/')
async def index(request):
    return 'Hello, world!'

app.run()

Resources

The following links are for legacy version 1 of Microdot:

Note that version 1 is no longer maintained, so you should consider migrating to version 2. See the migration notes for help.

Roadmap

The following features are planned for future releases of Microdot, both for MicroPython and CPython:

  • Authentication support, similar to Flask-Login for Flask (Added in version 2.1)
  • Support for forms encoded in multipart/form-data format (Added in version 2.2)
  • CSRF protection extension (Added in version 2.5)
  • Type hints (Added in version 2.6)
  • Pub/sub mini-framework for WebSocket and SSE
  • OpenAPI integration, similar to APIFairy for Flask

Do you have other ideas to propose? Let's discuss them!

This project relies on contributions from its users. If you benefit from it please consider making a single or ongoing monetary contribution in one of the following platforms:

Thank you!

http
micropython
python
webapp
webserver

Project health

Overall

3.8/10

Maintained

10/10

Code review

0/10
OpenSSF Scorecard

Latest release

2.7.0 · Sep 18, 2026

Releases this year

9

Significant stargazers

Jannis Leidel

2,703 followers · starred Feb 2023

Kenneth Reitz

30,141 followers · starred Nov 2023

Adrian Garcia Badaracco

690 followers · starred Jan 2024

David Brochart

399 followers · starred Feb 2025