ソフト開発会社のプリファードインフラストラクチャーは2006年10月13日,CGI(Common Gateway Interface)を用いたWeb連携アプリケーションをC++言語で開発するためのソフトウエア部品群「AzaraC(あざらし)」をオープンソースとして公開した。ビュー(HTML)とロジック(C++)とを分離する開発が可能になる。ライセンスはBSDライセンスに準拠する。

 AzaraCは,C++言語で書かれたWebアプリケーション開発フレームワークである。HTMLを記述して画面のビューを作るためのテンプレートと,テンプレートと連携して業務ロジックをC++言語で記述するためのC++ソース・コードとを分離するテンプレート・エンジンを中核とする。これにより,開発生産性とメンテナンス性が高まる。また,CGI経由で実行するアプリケーションはコンパイル済みのC++プログラムになるため,他のインタープリタ言語処理系と比べて高速に動作する。

 HTMLテンプレート「*.tpl」には,HTML構文に加え,専用のタグを用いてC++言語プログラムとの連携手続きやC++言語を記述する。HTMLテンプレートは最初に呼び出された際にC++言語に変換され,動的リンク・ライブラリとしてコンパイルされる。テンプレートを更新した場合は,自動的に再コンパイルされるため,稼働中のアプリケーションであっても任意のタイミングでテンプレートの書き換えが可能である。

 一方業務ロジックは,実行ファイル「*.cpp」としてC++言語で記述する。AzaraCはC++言語用の関数ライブラリを用意しており,C++の内部で「display()」関数を用いてロジックから利用するHTMLテンプレートを指定する。ロジックをコンパイルすることで,display()関数で指定したHTMLテンプレートを動的にリンクするアプリケーションが生成される。この際,リンク・フラグとしてgccの「-rdynamic」(--export-dynamic)を指定することにより,実行ファイル中にあるグローバル参照シンボルを,実行ファイルがdlopen()によって動的リンクするライブラリ内の参照解決に利用できるようにしておく。

 配布パッケージはazarac-0.1.0.tar.gz。configureを用いて導入できる。