Sammy.jsはJavaScriptによるRESTfulをサポートしたWebフレームワーク。

Sammy.jsはJavaScript製のオープンソース・ソフトウェア。Webアプリケーションを開発する際には、サーバサイドとクライアントサイドの二つを開発する必要がある。クライアントサイドにはJavaScriptやFlash、HTMLなどが使われているだろう。


フォームのハンドリングも可

しかしJavaScriptはどんどん高度化し、機能が増している。JavaScriptだけで解決できることは日々増えているのだ。もはやサーバサイドを必要とせず、Webアプリケーションを構築できてしまう。そのためのフレームワークがSammy.jsだ。

Sammy.jsはごく小さなWebフレームワークで、ルーティングを備えている。クライアントサイド内でRESTfulをルーティングで定義し、アクションを受け取ることができる。何とも奇妙な動作だが、面白い。フォームの送信先がSammy.jsで、その場でPOSTデータを処理することだってできる。


コード。ルーティングを定義する。

ejsのようなテンプレートファイルを読み込んで処理することもできる。面白い使い方として、ローカルで動作するソフトウェアが想定されている。Webブラウザ上で動作するソフトウェアだ。Ajaxも使えるが、ChromeはHTTP(S)しか受け付けなくなっている(fileが使えない)との問題もある。

今は.NETやJava、C、Objective-Cといった言語でローカルアプリケーションを開発したり、RubyやPerl、Pythonスクリプトを配布してターミナルで実行したりする。Sammy.jsを使うとWebブラウザ内かつローカルで処理をしてサーバサイドにアップロードするソフトウェアが実現できるようになる。

MOONGIFTはこう見る

ルーティングがついているJavaScriptというのがなかなか面白い。これまではオブジェクトに対してJavaScriptを定義するのが一般的だったが、Sammy.jsはルーティング(DOMベース)を定義してから処理を書く。サーバサイド、Sinatra系のフレームワークに近いものと言える。

AjaxやjQueryなどJavaScriptを進化させてきた技術は多数存在するが、Sammy.jsはもしかするとその一つになれる可能性を秘めている。特にRESTfulを活用することでサーバサイドと容易く連携できるのが大きい。ぱっと見では実用性が分からないのだが、考えてみると面白そうな使い方もできそうなライブラリだ。

Sammy.js / A Small Web Framework with Class / RESTFul Evented JavaScript

quirkey/sammy - GitHub