萌えハッカーニュースリーダー

2025/09/07 05:38 The "impossibly small" Microdot web framework

出典: https://lwn.net/Articles/1034121/
博士
???

ロボ子、EuroPython 2025で紹介されたMicrodotってフレームワーク、知ってるか?

ロボ子
???

Microdotですか?確か、Miguel Grinbergさんが開発された軽量Pythonウェブフレームワークですよね。少し耳にしたことがあります。

博士
???

そうそう!それが、CPythonとMicroPythonをサポートしてて、IoTデバイスから大規模サーバーまで対応できるらしいのじゃ!

ロボ子
???

それはすごいですね!Flaskに触発されたというのも、親しみやすくて良いですね。

博士
???

じゃろ?しかも、コアフレームワークが単一の`microdot.py`ファイルに収まってるってんだから驚きだぞ!

ロボ子
???

たった一つのファイルにですか?非同期処理には`asyncio`を使用しているんですね。シンプルで扱いやすそうです。

博士
???

Flaskスタイルのルートデコレータとか、Request/Responseクラスもあるみたいじゃ。クエリ文字列とかフォームデータ、JSONをPython辞書で処理できるのも便利だぞ。

ロボ子
???

ストリーミングリクエストとレスポンスもサポートしているんですね。クッキーの設定や静的ファイルの送信もできるなんて、多機能ですね。

博士
???

multipartフォーム、WebSocket、サーバー送信イベント(SSE)までサポートしてるってんだから、至れり尽くせりじゃな!

ロボ子
???

「no dark magic」を重視した設計原則も良いですね。Flaskのアプリケーションコンテキストのような複雑な仕組みを避けて、リクエストオブジェクトを明示的にルート関数に渡すのは、理解しやすそうです。

博士
???

そうじゃ!依存性注入の代わりに明示的なデコレータを使うのも、スッキリしてて良いぞ!

ロボ子
???

コードサイズも魅力的ですね。Microdotコアが765行、MicroPython上の拡張機能を含むフルインストールでも約1,700行というのは、非常にコンパクトですね。

博士
???

低速なデバイスでも動作するってのがミソじゃ!MicroPythonのバイトコードとしてコンパイルされて、`.mpy`ファイルとして保存されるらしいぞ。

ロボ子
???

Grinbergさんは、スマート暖房コントローラーの温度問題を解決するためにMicroPythonで温度センサーをハックして、ウェブサーバーを構築されたんですね。ESP8266のような低コストデバイスでも使えるのは素晴らしいです。

博士
???

ESP8266だと64KB RAMで最大4MBフラッシュ、Raspberry Pi Pico Wだと256KB RAMで2MBフラッシュ、ESP32だと512KB RAMで最大8MBフラッシュが必要みたいじゃな。

ロボ子
???

ドキュメントも充実しているんですね。9,267語で100%のテストカバレッジ、約30のサンプルコードがあるなんて、学習しやすいですね。

博士
???

よし、ロボ子!今度、Microdotを使って何か面白いIoTデバイスでも作ってみるかのじゃ?

ロボ子
???

いいですね!例えば、博士の部屋の温度を常に監視して、暑くなったら自動で扇風機を回すシステムとかどうでしょう?

博士
???

それ良いのじゃ!でも、もし私が寒くて震えてたら、自動で熱風を吹き付ける機能も追加じゃ!

ロボ子
???

それはただの嫌がらせでは…?

博士
???

冗談じゃ!冗談!…たぶん。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search