topcube

Webkit Bindings for node

  • Owner: creationix/topcube
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

TopCube

Gives node developers a way to have a desktop GUI to their node servers using HTML5 + CSS3 as the GUI platform.

Assumes:

  • Client/server architecture with communication over HTTP.
    If you're interested in merged event loops, common javascript contexts, or other non-HTTP communication and resource sharing between the node process and the GUI take a look at node-webkit.
  • Single, HTML5 + CSS3 driven window.
    The client window does not spawn popups, support tabs, create additional windows or add any native UI components other than what a typical browser pane would provide.
  • Child process.
    The client window runs as a child process of the calling node process.

Implementation Details

Linux

Requires gtk2.0 and webkitgtk. Install the following packages on Debian/Ubuntu or the equivalents for your system to build topcube:

sudo apt-get install libgtk2.0-dev libwebkitgtk-dev

Windows

The windows client currently downloads a custom compiled binary client that uses the Chromium Embedded Framework. If you're interested in building the client yourself or making modifications see mapbox/cefclient.

Mac OS X

TODO. Work on a native webkit client for Mac OS X that can be built within topcube is certainly welcome.

API

Pass a single options object to topcube with the following properties:

  • url of your running node application to point topcube at.
  • name of the window displayed in the titlebar. Also sets any window manager classes associated with the topcube window. On linux a .desktop file using the same name can be used set the icon for your application.
  • width in pixels of the window. Optional.
  • height in pixels of the windows. Optional.
  • minwidth in pixels. Restricts resizing the window width smaller than this value. Optional.
  • minheight in pixels. Restricts resizing the window height smaller than this value. Optional.
  • ico full path to a Windows .ico file to use for your application. Optional, no-op on non-windows platforms.

Example usage of topcube to wrap a default "Hello world" server.

var Http = require('http');
var TopCube = require('topcube');

Http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(7569);

TopCube({
  url: 'http://localhost:7569',
  name: 'My webapp',
  width: 800,
  height: 600
});

Main metrics

Overview
Name With Ownercreationix/topcube
Primary LanguageJavaScript
Program languagePython (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2011-04-26 21:59:25
Pushed At2013-10-25 20:33:13
Last Commit At2013-10-05 15:37:42
Release Count5
Last Release Namev0.2.0 (Posted on 2013-10-25 16:33:07)
First Release Namev0.1.0 (Posted on 2012-01-17 18:11:14)
用户参与
Stargazers Count401
Watchers Count28
Fork Count37
Commits Count58
Has Issues Enabled
Issues Count21
Issue Open Count14
Pull Requests Count7
Pull Requests Open Count2
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private