Cro
Rakuでリアクティブな分散システム・Webサービスを構築するためのライブラリ群。単一の「フレームワーク」というより、必要な部分だけ組み合わせて使えるツールキット群として設計されている。公式サイトは「elegant reactive services in Raku」と謳っている。MoarVMおよびRakudoコンパイラのアーキテクトでもあるJonathan Worthingtonが作者。
アーキテクチャ
Cro の中核にあるのは、RakuのSupply(非同期リアクティブストリーム)を使って実装された「非同期パイプライン」という概念。HTTPリクエスト処理などをこのパイプラインの合成として組み立てる。高レベルAPIで簡単なことは簡単に、パイプラインの合成で難しいことも可能にする、というPerl由来の設計思想("easy things easy, hard things possible")を踏襲している。
主な機能
- HTTP(HTTPS、HTTP/2.0を含む)、WebSocketのサポート
- ルーティング機能
Cro::WebAppによるテンプレート機能croコマンドラインツールによる開発用サーバー起動・テストの支援
動かしてみた
自作Rakuインタプリタmutsu(0.21.0でCro::HTTPをバンドル)でhello worldサーバを動かした記録がmutsuでCro::HTTPのhello worldを動かす実験にある。
出典
- Cro - elegant reactive services in Raku
- Cro - Getting started with Cro
- Cro - Cro documentation
- Day 2 – CRUD with Cro::HTTP, a tutorial – Raku Advent Calendar
- Raku Land - Jonathan Worthington