js-ctypes - ネイティブコードを呼び出す新しいカタチ
- 28. js-ctypes
●
ネイティブコード(共有ライブラリ)を呼び出す新しい
方法
●
Firefox 3.6 (Gecko 1.9.2)から利用可能
●
名前の由来は、Pythonのモジュールから
- 29. js-ctypes
●
簡単なライブラリを呼び出すだけであれば、い
ちいち専用コンポーネントを作成する必要が
あった
●
制限事項に引っかからない限りこれからは必要なし
●
Chrome権限が必要なので、HTMLコンテンツ
からは使えません
- 30. js-ctypes
●
Mike Finkle (今モバイルやってる人) がはじめた
プロジェクト
●
最初はExtensionとしての実装
●
今は、Raw JSAPI経由
●
JavaScriptとネイティブコードのバインディングに
は、libffiを利用
- 41. xptcall
●
Geckoでは内部でxptcallと呼ばれる機能があっ
て、そこでJavaScriptとネイティブコードのバイン
ディングが行われる
●
各プラットフォーム毎に実装が必要
●
xptcallからxpconnect経由でネイティブコードを呼
び出す
●
xptcallを利用するには、IDLが必要
- 42. js-ctypes
●
js-ctypesがJavaScriptエンジンのAPIを直接
呼び出す
●
言語間バインディングはlibffiまかせ
●
エクスポートされているものは呼び出し可能
- 45. 現在の制限事項
●
コールバック関数をパラメータとして渡すこと
ができない
●
構造体を利用することができない
●
参照も
●
ARM環境(MaemoとかWindows Mobileとか)は
現在未サポート
- 46. Reference
●
Mike's blog (about js-ctypes implementation)
http://starkravingfinkle.org/blog/2007/09/hello-js-
ctypes-goodbye-binary-components/
●
ctypes.jsm
https://developer.mozilla.org/en/JavaScript_code_mo
dules/ctypes.jsm
- 47. 何かあれば、
Twitter: @makoto_kato
Email: m_kato@ga2.so-net.ne.jp