Node-Gir-это привязки node.js с интроспекцией Gobject, что позволяет автоматическому и динамическим вызовам в любую библиотеку, в которой установлены аннотации GI. Это включает в себя большинство библиотек из проекта GNOME.
Это позволит полностью скрепить систему настольных компьютеров GNOME полностью из узла так же, как это делается сегодня с Seed, GJS или Pygtk. Это также позволяет использовать библиотеки GNOME в приложениях node.js. С помощью этого вы также можете написать интенсивные части ваших приложений в Вале и позвонить в Node.js и другие языки.
Вам нужна библиотека самоанализа Gobject для установки. На системе, похожей на Debian, это будет обработано:
$ sudo apt-get install libgirepository1.0-dev
Тогда просто создайте узел-джир с:
$ npm install gir
Репозиторий узел-GIR поставляется с набором тестов, которые используют библиотеку Midgard2 для тестирования. Вам также нужно, чтобы установил, а затем запустите:
$ npm test
Трэвис используется для непрерывной интеграции:
На следующем графике показаны все части и то, как они работают вместе. Единственной недостающей частью является привязки узлов с либеропозиторием. Отсюда этот проект.
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)
для прикрепления сигналов.