node-girはnode.jsのバインディングであり、Giアノテーションがインストールされているライブラリに自動かつ動的な呼び出しを行うことを可能にします。これには、GNOMEプロジェクトのほとんどのライブラリが含まれます。
これにより、Seed、GJS、またはPygtkで今日の方法で、ノードから完全にGNOMEデスクトップシステムをスクリプト化することが可能になります。また、node.jsアプリケーションでGNOMEライブラリを使用することもできます。それを使用すると、アプリケーションのパフォーマンス集約型の部分をVALAに書いて、node.jsおよびその他の言語から呼び出すこともできます。
GoBject Introspection Libraryをインストールする必要があります。 Debianのようなシステムでは、これは次のとおりに処理されます。
$ sudo apt-get install libgirepository1.0-dev
次に、次のようにnode-girを作成するだけです
$ npm install gir
Node-GIRリポジトリには、MidGard2ライブラリを使用してテストするテストのセットが付属しています。また、インストールしてから実行する必要があります。
$ npm test
トラビスは継続的な統合に使用されます:
次のグラフは、すべての部品とそれらがどのように連携するかを示しています。不足している唯一の部分は、LibgirePositoryへのノードバインディングです。したがって、このプロジェクト。
BUILD TIME:
+-----------------------------------------------------------+
| foo.c |
| foo.h |
| |
| Library sources, with type annotations |
+-----------------------------------------------------------+
| |
gcc g-ir-scanner
| |
| V
| +------------------------+
| | Foo.gir |
| | |
| | <GI-name>.gir |
| | |
| | XML file |
| | |
| | Invocation information |
| | Required .gir files |
| | API docs |
| | |
| +------------------------+
| |
| g-ir-compiler
| |
DEPLOYMENT TIME: |
| |
V V
+-----------------------------+ +---------------------------+
| libfoo.so | | Foo.typelib |
| | | |
| | | Binary version of the |
| ELF file | | invocation info and |
| | | required .typelib files |
| Machine code, plus | +---------------------------+
| dynamic linkage information | A
| (DWARF debug data, etc) | |
+-----------------------------+ |
A |
| +---------------------------+
| | libgirepository.so |
+-----------+ | |
| libffi.so | | Can read typelibs and |
| | | present them in a |
+-----------+ | libffi-based way |
A | |
| +---------------------------+
| A
| |
| +------------+
+--------------------------| node-gir |
| |
+--------->+------------+
|
+------------------+
| NodeJS |
+------------------+
彼らはいいからですが、私が探しているものではありません。ノードは非常に人気があり、デスクトップツールやアプリケーションに使用できると便利です。
これを行う方法を見つけようとするリンクとメモがいくつかあります。
これらのアイデアのいくつかは、この拘束力のあるものになり、いくつかはそれを使用する素敵なラッパーになります。私たちが進むにつれてもっと知ります。
camelCase
を使用します。.on(name, callback)
を使用して信号を添付します。