Ruby Module for SWIG
SWIG (Simplified Wrapper and Interface
Generator)をRubyに対応させるモジュールです。
C言語/C++で書かれたライブラリをスクリプト言語から利用するためには拡
張モジュールを作る必要があります。拡張モジュールを作成するのは結構面倒で
す。SWIGはそのような拡張モジュールの作成を容易にしてくれるツールです。
SWIGはC言語/C++のヘッダファイル、もしくは専用のインタフェース定義ファイ
ルから、スクリプト言語用のラッパーコードを生成します。
このモジュールはそのSWIGをRubyに対応させます。このモジュールを使うこ
とで、SWIGのインターフェース定義ファイルからRubyの拡張ライブラリを生成す
ることができます。これには以下のような機能が含まれます。
- 拡張ライブラリ作成作業の中で、面倒な機械的コーディング作業の部分を
自動化します。
- メソッドの引数のチェック
- 引数省略時のデフォルト値の設定
- 基本的なデータ型の Ruby <=> C での変換
- 機械的な変換では対応できない部分については、個別にカスタマイズさた
コードを差し込む手段が提供されています。
- C言語の構造体、C++のクラスなどを自動的にRubyのクラスでラップします。
ドキュメント
ダウンロード
- Rubyモジュールは、SWIG本家にマージされました。
SWIG1.3a5にはRubyモジュールが入っています。
swig.sourceforge.net
からダウンロードできます。
- swigruby-0.4.4.tar.gz
このリリースは preliminary release です。
このバージョンは、もうメンテナンスしていません。
- バイナリパッケージ:
- 主な変更点
- 0.4.3から0.4.4:
- 0.4.2から0.4.3:
- Cのグローバル変数は、Rubyのモジュールの属性としてラップする
ようにしました。
- 0.4.1から0.4.2:
- 0.4から0.4.1:
FILE * typemap を追加。
include pragma を追加。
- C++のクラスを継承する際のバグを修正。
- 0.3 から 0.4:
pointer.iが使えるようになりました。
typemaps.iのバグ修正。
- 0.2 から 0.3:
- Moduleを作らずにトップレベルに関数などを置くこともでき
るようにしました。
- Pythonスタイルの演算子メソッド名を使えるようにしました。
(SWIGは演算子を名前として使えないので)
- 0.1 から 0.2:
typemaps.i に基本的なtypemapを用意しまし
た。
- バグフィックス。
SWIG/Rubyが使われているプロジェクト
Copyright
Copyright (C) 1999 Network Applied Communication Laboratory, Inc.
関連リンク