2025-12-14

Suave 3

krymtkts/blog-fable は開発時の preview や snapshot testing の web server に Suave を使っている。 Suave は F# で書かれた軽量な Web server で、 2023 年に出た 2.7.0-beta1 以降リリースは止まっていた。開発はポツポツ進んでいたみたいなのだけど。 でもつい先日 dev server での preview ができなくなったので調べてみたら、なんと 2025-11 頃から 3 系 preview が NuGet で公開され出してた。 2025-12-11 の時点で preview でない 3.2.0 まで来てる。

活動再開を目にできるなんて実に喜ばしいことだ。 Bulma の時もそうだったが、そもそも活動再開でもなくてそういう開発スタイルとスパンなのかも知れんな。 何にせよ利用者としては嬉しい限り。

Suave の 2 -> 3 ではごっそり書き換えが必要なレベルの設計変更はなかった。 パフォーマンス最適化がメインで、内部で Task がより多く使われるようになってる。 他は ArrayPool, Memory とかね。

あと今のところは Logging module がなくなって logger が使えなくなってた。 Logging がなくなったのは読み込まれたファイルのログが出なくなって dev server 的には地味に痛いのだが、ひょっとしたら別の方法で実現できたり復活の可能性もあるので、経過観測する。

blog-fable で一番影響があったのは一部 signature の変更かな。でも build error を直すだけ。 socket CE の中で使ってた use が使えなくなったのと defaultMimeTypesMap の signature 変更あたりが細かな修正点。 これら blog-fable で影響のあった点を #422 でいい感じに対応した。 実測した訳では無いのと target framework が net10.0 になってるのもあるだろうが、体感かなり速くなった気がする。

久しぶりに dev server 周りいじったので、この機会に他にも細かな改善などしていっていいかも知れんな。 その間 krymtkts/pocof の方が放置されてしまうが、 blog-fable の修正は大した事ない物が多いからそんなに時間もかからないだろう。