2011-01-22

Apache Rivet

Apache Rivet は Apache HTTP Server のモジュールで、PHP のようにサーバ・サイドで動的な Web ページを作成できる Tcl システムです[1]。Tcl を応用した他の Apache のモジュールには、mod_tclWebsh がありますが、Rivet の最新パッケージのリリースが 25-Oct-2010 と一番新しく、もっとも活動が活発なように感じたので試用してみました。現バージョンの Rivet 2.0 系は Apache 1.3 と 2.x に対応しています。Tcl はバージョン 8.5 あるいは 8.4 を必要とします。
Linux の RPM パッケージを作成するのに必要な spec ファイルが下の参考サイト [1] のダウンロードページにあったので、最新の Rivet-2.0.2 に対応できるように編集して Fedora 14 用のパッケージを作成し、インストールしてみたところ、簡単にローカルの Web サーバの環境で動作確認ができました。

[2] の Example のページで紹介されている、カレンダーを表示するサンプルを紹介します。
<? set hello_message "Calendar" ?>
<html>
  <head>
    <title><? puts $hello_message ?></title>
  </head>
  <body><?
package require Calendar

proc ::cal_cell_attributes {day month year weekday} {
    if {$weekday == 3} {
        return [list class curr_wkday]
    }
}

set htmlc [HtmlCalendar #auto]
set html_txt [$htmlc emit \
        -container {table class calendar} \
        -current_weekday 3 \
        -cell_function cal_cell_attributes]
puts $html_txt
?></body>
</html>
これを calendar.rvt というように、拡張子 rvt のついたファイル名で保存し、保存したファイルを Web サーバー (Apache) からブラウザで読み込むと以下のようになります。

最近、SourceForge.jp では、個人向け開発支援ツール「PersonalForge」がリリースされたので[2]、早速、自分のアカウントで「Apache Rivet RPM」という作業部屋を作成し、作成した RPM パッケージを公開しました[3]
 

参考サイト

[1] Rivet - Webscripting for Tcl'ers
[2] SourceForge.JP、個人向けGitリポジトリ/ストレージサービス「PersonalForge」をリリース
[3] 作業部屋: bitwalk / Apache Rivet RPM のファイルダウンロード
[4] Apache 関連書籍

0 件のコメント: