节点gir是node.js绑定到gobject内省的绑定,使得可以自动和动态呼叫对安装GI注释的任何库进行自动和动态调用。这包括GNOME项目中的大多数图书馆。
这将使完全可以从节点中脚本从节点中脚本脚本,以种子,GJS或pygtk的方式进行脚本。它还允许在Node.js应用程序中使用GNOME库。有了它,您还可以在Vala中编写应用程序的性能密集型部分,并从Node.js和其他语言中调用它们。
您需要安装GoBject内省库。在类似Debian的系统上,这将由以下操作来处理:
$ sudo apt-get install libgirepository1.0-dev
然后,只需使用以下方式构建节点-GIR
$ npm install 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
来进行看上去可javascripty的方法。.on(name, callback)
附加信号。