Release GContext Node.js Module!

How to write a native desktop application in Node.js? Perhaps you know many modules can do that easily, something's like node-gui and jsdx-toolkit. In order to develop system program, DBus module is the most important thing you must have as well. With Dbus module, you can handle all communications between programs. Furthermore, you can control low-level functions system provided via DBus, which includes hardware, networking and operation system features. Unfortunately, all things do not work at all since new version of Node.js.

Many system libraries are based on GLib, and work with GLib event loop. For writing a node.js binding with such libraries, libev is the only way to integrate event loop between node.js event loop and GLib main context. The problem is that libev is deprecated since 0.8 node.js cause modules which depends on libev will be broken on latest and higher version. Nothing works if there is no libev.

In fact, upstream announced that libuv is being only one way to handle all low-level operations(I/O, threads, timer and poll). However, there is no people to re-work integration of GLib event loop with new libuv APIs, even six months have passed already. This problem must be solved if we want to write system program and native application in Node.js.

Besides, modules which works with GLib event loop have own implementation for event loop integration in the past, conflict occurs properly between each module. Your program always crashes or hangs when normal process of event loop is interrupted by another module.

For theses reasons, I wrote a Node.js module "GContext" to do GLib main context integration, used libuv APIs to support latest version of Node.js. It's an individual module, so it's possible to be used directly by other modules. As long as it uses GContext module, it can run a GLib event loop on Node.js and share this loop with other modules. There is no need to re-implement this mechanism by themselves anymore.

You can install it from NPM directly:
npm install gcontext

Initiate main context and run a GLib loop on Node.js event engine:
var GContext = require('gcontext');


  1. hi~
    qt and nodejs,how to do that???

    1. you can found node-qt, it's a node.js binding for Qt.

  2. Enjoyed reading the article above, really explains everything in detail, the article is very interesting and effective. Thank you and good luck for the upcoming articles Nodejs training

  3. One of our visitors recently recommended the following website. 토토사이트

  4. Its like you read my mind 야동 ! You appear to know so much about this, like you wrote the book in it or something. I think that you can do with some pics to drive the message home a bit, but instead of that, this is magnificent blog. An excellent read. I’ll definitely be back.

  5. Enjoyed reading the article above , really explains everything in detail,the article is very interesting and effective.Thank you and good luck for the upcoming articles.


  6. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. 일본야동
    Feel free to visit my blog : e 일본야동

  7. I have read your blog it is very helpful for me. I want to say thanks to you. I have bookmark your site for future updates.
    Feel free to visit my blog : 야설

  8. Nice information. I’ve bookmarked your site, and I’m adding your RSS feeds to my Google account to get updates instantly. 파워볼

  9. Daebak! that’s what I was looking for, what a information! present here at this website 온라인경마

  10. Great work ! This is the type of information that are supposed to be shared across the internet. 슬롯머신

  11. I really enjoy your web’s topic. Very creative and friendly for users. Definitely bookmark this and follow it everyday.바카라사이트

  12. This is really helpful post and very informative there is no doubt about it.

  13. Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live. I have bookmarked more article from this website. Such a nice blog you are providing. Feel free to visit my website; 온라인카지노

  14. Really i am impressed from this post....the person who create this post it was a great human. Feel free to visit my website; 온라인카지노

  15. Congratulations on your article, it was very helpful and successful. d4add36077f28b9435423894644f9801
    sms onay
    website kurma
    numara onay

  16. Thank you for your explanation, very good content. 15f22b0800773276d8d2f19fb344a279
    altın dedektörü




Web 技術中的 Session 是什麼?


Reverse SSH Tunnel 反向打洞實錄

淺談 USB 通訊架構之定義(二)

淺談 USB 通訊架構之定義(一)