/appjs

SDK on top of nodejs to build desktop apps using HTML5/CSS/JS

Primary LanguageC++MIT LicenseMIT

Attention

AppJS project has not been actively developed for several months. However ownership of the project has now changed and the future is being discussed.

An offshoot project deskshell has been very actively developed. It is a javascript based SDK for building applications that uses an off the shelf nodejs and chromium to build html5 / css / js applications.

The future will probably involve appjs being able to be run stand alone or as a frontend to deskshell. Please contribute to the discussions on our mailing list: https://groups.google.com/forum/#!forum/appjs-dev

AppJS

AppJS is an SDK to develop desktop applications using Node.js melded with Chromium. With AppJS you can develop desktop tools and applications using the same libraries and knowledge used to build websites. You get all the following in one package:

  • JS, HTML5, CSS, SVG, WebGL provided by Chromium
  • mature http/https servers and client APIs - Node
  • filesystem, dns, cryptography, subprocesses, OS APIs - Node
  • sandboxed code execution environements virtual machines - Node
  • tools for exposing native C++ bindings to JavaScript- Node

30 Second Quickstart

The below packages include everything needed to get started with AppJS, including Node.js, all dependencies, binaries, and a launcher ready to go out of the box. 1.) Extract to a folder. 2.) Double click on launch. 3.) Hello World.

AppJS 0.0.20 Distributables:

npm install OS X install is currently broken

AppJS can be now be installed via npm.

npm install appjs

AppJS requires 32bit Node on OS X. It works on 64bit OS X but Node must be 32bit. We're working on solving this, but it's a limitation of Chrome itself so it's a work in progress. Help us gain traction by starring this chromium issue.

(Windows requires MSVC++ 2010 runtimes)

One Minute Usage Overview

var app = module.exports = require('appjs');

app.serveFilesFrom(__dirname + '/content');

var window = app.createWindow({
  width  : 640,
  height : 460,
  icons  : __dirname + '/content/icons'
});

window.on('create', function(){
  console.log("Window Created");
  window.frame.show();
  window.frame.center();
});

window.on('ready', function(){
  console.log("Window Ready");
  window.require = require;
  window.process = process;
  window.module = module;
  window.addEventListener('keydown', function(e){
    if (e.keyIdentifier === 'F12') {
      window.frame.openDevTools();
    }
  });
});

window.on('close', function(){
  console.log("Window Closed");
});

Shared Contexts

chrome-in-node-repl

DOM Event Listener in Node

License

The MIT License

Copyright (c) 2012 The AppJS Authors

See the LICENSE file for details.