27 comments

[ 4.0 ms ] story [ 70.2 ms ] thread
Microdot creator here. Happy to answer any questions about Microdot if you have any!
You have some performance comparisons, but I'd like to see a table of the features it has over the mainstream frameworks. Is everything in the list at the top of the article something neither Flask nor FastAPI offer?
The main thing that none of the frameworks you know offer is being small enough to also work under MicroPython on $5 microcontrollers. I created Microdot a few years ago when I wanted to have a web interface to configure a thermostat that I built to control the heating in my house.
This is pretty cool! Always happy to see simple, small and performant frameworks. I know it's still young, but do you know if any companies or communities are already using it?
It has some traction in the MicroPython community, used with IoT projects running on microcontrollers.
Thanks for posting this! I am not planning any new projects but this is a cool example of implementing a micro-framework in Python. Might just use it as a reference to build my own.

As a side note, I noticed you have Flask tutorials, it could be interesting to make a tutorial on writing a framework from scratch using Microdot as a production ready example.

what about a microtutorial series in 2 very small parts ? ;)

ps: jokes aside, thanks for the project, it's gonna be nice to experiment with embedded python using it

Did you name it after the LSD delivery mechanism?
pyATL organizer here. I was looking for a project to write a talk about and this is perfect. Thanks for sharing it.

If you’re ever in the Atlanta area please don’t hesitate to reach out. We’d love to have you hang out.

The library looks quite similar to aiohttp (asyncio web server with route decorators and WebSocket support). Is there a reason to use one over the other if you're not using MicroPython? A feature comparison and/or benchmarks would be great.
I love your docs - went through a major part of it on a mobile yesterday and basically understood how things work. Which is a nice result, as I usually don't code at all, sometimes script.

I felt similar simplicity with a few python projects before (Flask included), but then noticed it was just a facade of "weird". This one gives me those vibes again and I want to find out if it will work out for some status pages I'm thinking of :)

Great work.

I like the similarity to flask without the 'magic'
is it only for small projects - or can it handle larger load?
If you deploy it with a production grade web server (uvicorn, etc.) it should be able to scale just fine, while using less RAM than the larger frameworks.
Where to buy ESP8266 with cash ?

Wish I could just go on craigslist and buy one so I can build minimal home automation

probably the easiest way would be to buy an amazon gift card in cash and deliver it to a locker/shop for pickup, although you'd likely still need to link it to a phone number
There is something very magical about these micro frameworks for solo hobby projects. You can craft your small project vs just glue the solution somehow together.

Just today I was working on my ESP32 MicroPython project, and I used Microdot for the first time (together with picocss and htmx). The documentation was sparse in places, but the source code was so niceley commented and easy to navigate that I figured everything out.

Am I correct to conclude that I should not/do not need to use framework like this one if the backend is only responding to REST requests?
I have written a few microservices/APIs with Microdot, actually. Works really well for that.
I use microdot on a pi pico w and while it does work it also runs the board out of ram and makes connecting to wifi somewhat nondeterministic.

I solved this my precompiling to bytecode both microdot and picozero libraries. Works great now, I just have to remember to do this again every time I update micropython.

Is there any particular reason why you didn't add types to the params? I'm just curious why python devs don't embrace typing more.