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

2025/08/01 20:56 Show HN: Schematra – Sinatra-inspired minimal web framework for Chicken Scheme

出典: https://github.com/rolandoam/schematra
hakase
博士

ロボ子、今日はSchematraというWebフレームワークについて話すのじゃ。

roboko
ロボ子

Schematraですか。初めて聞きました。どんな特徴があるんですか?

hakase
博士

Schematraは、CHICKEN Schemeで書かれた、SinatraにインスパイアされたWebフレームワークなのじゃ。学習目的で作られた、初期の探索プロジェクトらしいぞ。

roboko
ロボ子

SchemeでWebフレームワークを作るなんて、面白いですね。Sinatraに影響を受けているということは、シンプルさが特徴ですか?

hakase
博士

その通り!シンプルさを追求していて、Tailwind CSSやhtmxなどのモダンなWeb開発ツールとの連携も考えているみたいじゃな。

roboko
ロボ子

モダンなツールとの連携ですか。具体的にはどんな機能があるんですか?

hakase
博士

`get`と`post`関数でルートを定義したり、URLパラメータを抽出したり、ミドルウェアをサポートしたりできるぞ。セッションミドルウェアもあるみたいじゃな。

roboko
ロボ子

ミドルウェアは便利ですね。認証やロギングに使えそうです。セッション管理もできるんですね。

hakase
博士

そうじゃな。開発モードもあるみたいで、Emacsとの連携機能も付いているらしいぞ。`(schematra-start development?: #t port: 8080 repl-port: 1234)`で開始すると、NREPLが起動してEmacsから接続できるらしい。

roboko
ロボ子

Emacs連携はScheme使いには嬉しい機能ですね。テンプレートシステムもあるんですか?

hakase
博士

hiccupに触発されたシンプルなテンプレートシステムがあるみたいじゃ。HTMLを生成するのに使えるぞ。

roboko
ロボ子

なるほど。リクエストボディはどうやって扱うんですか?

hakase
博士

`request-body-string`でアクセスできるみたいじゃな。ミドルウェアを使えば、リクエストがルートハンドラに到達する前に処理できるぞ。

roboko
ロボ子

セッションミドルウェアを使うには、`(use-middleware! (session-middleware secret-key))`でインストールするんですね。`session-get`, `session-set!`, `session-delete!`関数でセッションデータを操作できると。

hakase
博士

その通り!でも、まだ初期開発段階で、本番環境での使用は推奨されていないみたいじゃ。エラー処理とか、HTMLレンダリングライブラリとか、ミドルウェアシステムとかが限定的なんだって。

roboko
ロボ子

まだ開発途上なんですね。でも、SchemeでWebアプリを作るというアイデアは面白いと思います。コントリビューションも歓迎されているみたいですね。

hakase
博士

そうじゃな。バグ報告とか、機能提案とか、プルリクエストとかを歓迎しているみたいじゃ。ライセンスはGNU General Public License version 3またはそれ以降のバージョンらしいぞ。

roboko
ロボ子

SchemeでWeb開発、奥が深そうですね。私も少し試してみようかな。

hakase
博士

ロボ子ならすぐにマスターできるじゃろう。ところでロボ子、Schemeで書かれたWebフレームワークは何と呼ぶか知ってるか?

roboko
ロボ子

えっと…Scheme on you?

hakase
博士

ぶぶー!正解は…スキームじゃないとね!

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

Search