O Node-GIR é o Node.js Ligedings para a introspecção do GOBJECT, possibilitando fazer chamadas automáticas e dinâmicas para qualquer biblioteca que tenha anotações GI instaladas. Isso inclui a maioria das bibliotecas do projeto Gnome.
Isso possibilitará o script de um sistema de desktop Gnome inteiramente do nó muito da maneira que é feita hoje com sementes, GJs ou pygtk. Ele também permite o uso de bibliotecas GNOME em aplicativos Node.js. Com ele, você também pode escrever as partes de desempenho intensivo de seus aplicativos no VALA e chamá-los do Node.js e outros idiomas.
Você precisa da biblioteca de introspecção do Gobject para ser instalada. Em um sistema semelhante ao Debian, isso seria tratado por:
$ sudo apt-get install libgirepository1.0-dev
Em seguida, basta construir nó-gir com:
$ npm install gir
O repositório de nó-Gir vem com um conjunto de testes que utilizam a biblioteca Midgard2 para testar. Você também precisa que seja instalado e depois execute:
$ npm test
Travis é usado para integração contínua:
O gráfico a seguir mostra todas as partes e como elas trabalham juntas. A única parte ausente são as ligações do nó ao libirepositório. Daí este projeto.
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 |
+------------------+
Porque eles são legais, mas não o que estou procurando. O Node é realmente popular e seria bom poder usá -lo para ferramentas e aplicativos para desktop.
Aqui estão alguns links e notas enquanto tento descobrir como fazer isso.
Algumas dessas idéias serão exibidas nessa encadernação e outras serão agradáveis que a usam. Vou saber mais à medida que progredimos.
camelCase
para métodos que pareçam JavaScripty..on(name, callback)
para anexar sinais.