XPCOM 言語バインディングは、以下の目的のために特定の言語と XPCOM との橋渡しを行います。
- 他の言語から XPCOM オブジェクトへのアクセス方法を提供します(「アクセス」とは、 XPCOM オブジェクトの読み込み・書き込み・生成・オブジェクトのメソッド呼び出しを意味します)。
- 他の言語で書かれた XPCOM オブジェクトのモジュールを「露出」させます。モジュールは XPCOM バインディングが存在する言語すべてからアクセスすることができるようになります。
XPCOM レイヤー自身は C/C++ で書かれているため、 XPCOM API は C/C++ でサンドボックスの外側から呼び出すことができます。また、他の言語から XPCOM API を利用できるようにするためには別のレイヤーが必要になります。
そのようなバインディング層が様々な言語に対して提供されています。
- JavaScript: XPConnect (これは Firefox に含まれています。 XUL アプリケーションで利用されています)
- Java: JavaXPCOM (これは Firefox には含まれていませんが、XULRunner の標準のビルドには梱包されており、また Eclipse のアプリケーションで利用されています)
- Python: PyXPCOM (これは標準のビルドには含まれていませんが、 ActiveState Komodo 製品では利用されています)
- Perl: PlXPCOM
- Ruby: RbXPCOM
利用法が必要な場合は、それぞれのバインディングのページを参照してください。