Node-gir adalah node.js binding ke gobject introspeksi sehingga memungkinkan untuk melakukan panggilan otomatis dan dinamis ke perpustakaan mana pun yang memiliki anotasi GI diinstal. Ini termasuk sebagian besar perpustakaan dari proyek GNOME.
Ini akan memungkinkan untuk membuat skrip sistem desktop gnome sepenuhnya dari simpul banyak seperti yang dilakukan hari ini dengan Seed, GJS atau PyGTK. Ini juga memungkinkan menggunakan pustaka GNOME di aplikasi Node.js. Dengan itu Anda juga dapat menulis bagian-bagian intensif kinerja dari aplikasi Anda di Vala dan memanggilnya dari Node.js dan bahasa lainnya.
Anda memerlukan pustaka introspeksi Gobject untuk diinstal. Pada sistem seperti Debian ini akan ditangani oleh:
$ sudo apt-get install libgirepository1.0-dev
Kemudian buat saja node-gir dengan:
$ npm install gir
Repositori Node-Gir dilengkapi dengan serangkaian tes yang memanfaatkan pustaka Midgard2 untuk menguji. Anda juga perlu diinstal, dan kemudian jalankan:
$ npm test
Travis digunakan untuk integrasi berkelanjutan:
Grafik berikut menunjukkan semua bagian dan bagaimana mereka bekerja bersama. Satu -satunya bagian yang hilang adalah binding simpul ke libgirepository. Karenanya proyek ini.
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 |
+------------------+
Karena mereka baik, tapi tidak yang saya cari. Node sangat populer dan akan menyenangkan untuk dapat menggunakannya untuk alat dan aplikasi desktop.
Berikut adalah beberapa tautan dan catatan saat saya mencoba mencari cara melakukan ini.
Beberapa ide ini akan masuk dalam ikatan ini dan beberapa akan masuk dalam pembungkus bagus yang menggunakannya. Saya akan tahu lebih banyak saat kita maju.
camelCase
untuk metode yang pasti terlihat Javascripty..on(name, callback)
untuk melampirkan sinyal.