Place1 / node-gir

Node bindings to libgirepository
http://live.gnome.org/GObjectIntrospection
MIT License
27 stars 6 forks source link

Abandoned

I currently don't have enough time to properly develop this library. If you're keen to contribute in this space have a look at: https://github.com/romgrk/node-gtk

node-gir

CircleCI npm npm

Node-gir is Node.js bindings to GObject Introspection making it possible to make automatic and dynamic calls to any library that has GI annotations installed. This includes most libraries from the GNOME project.

This will make it possible to script a GNOME desktop system entirely from node much in the way it's done today with Seed, GJS or pygtk. It also allows using GNOME libraries in Node.js applications. With it you can also write the performance-intensive parts of your applications in Vala and call them from Node.js and other languages.

Installation

You need GObject Introspection library to be installed. On a Debian-like system this would be handled by:

$ sudo apt-get install libgirepository1.0-dev

On an arch based system:

$ sudo pacman -S gobject-introspection

On macOS:

$ brew install gobject-introspection

Then just install node-gir with:

$ npm install node-gir

Running tests

The tests load the gtk3 library to use as a testing target. On a Debian-like system it's likely you already have gtk3 installed, if not, it can be installed using:

$ sudo apt-get install libgtk-3-dev

Or on macOS:

$ brew install gtk+3

You can then run the tests with the following:

$ npm test

Linting code

ClangFormat is used for linting the C/C++ code. On a Debian-like system you can install it by running the following:

$ sudo apt-get install clang-format

You can then run the linter with the following:

$ npm run lint

Things which work

Things which dont work (correct)