Node-Webkit

README

Node-Webkit it's a web application runtime based on Chromium and Node.JS that lets you integrate Node.JS functions and modules directly from WebKit DOM and enables a new way of writing native application with all web technologies.

It is created and developed in Intel Open Source Technology Center. You can find an introduction to the project in Speaker Deck here: Node-Webkit App Runtime.

Features

  • Applications written in modern HTML5, CSS3, JS and WebGL.
  • Complete support for Node.js APIs and all its third party modules.
  • Good performance: Node and WebKit runs in the same thread: Function calls are made straightforward; objects are in the same heap and can just reference each other;
  • Easy to package and distribute apps.
  • Available on Linux, Mac OSX and Windows

What's Node.JS?

Node.js is a server-side software system designed for writing scalable Internet applications, notably web servers. Programs are written on the server side in JavaScript, using event-driven, asynchronous I/O to minimize overhead and maximize scalability.

It contains a built-in HTTP server library, making it possible to run a web server without the use of external software, such as Apache or Lighttpd, and allowing more control of how the web server works. Node.js enables web developers to create an entire web application in JavaScript, both server-side and client-side.

What's WebKit?

WebKit is a layout engine software component designed to allow web browsers to render web pages. It powers Google's Chrome web browser versions. As of November 2012 it has the most market share of any layout engine at over 40% of the browser market share-ahead of both the Trident engine used by Internet Explorer, and the Gecko engine used by Firefox.

Code

Node-Webkit 1

Before to continue, you need to be sure that Node-Webkit is the right technology for you, so take some minutes to check some current projects being developed with this, some of them are already famous in the web development world, some others are populars in Asia where the majority of developers supporting this project are.

Here you can find the list of applications and companies using Node-Webkit. And You may also be interested in their demos repository.

Ok, now go ahead an take a look to this code, it is very simple so you can understand that work with Node-Webkit is very easy.

$ mkdir nw-hello-world
$ cd nw-hello-world
$ touch index.html
$ touch package.json
$ cat ./nw-hello-world/index.html
  <!DOCTYPE html>
  <html>
    <head>
      <title>Hello World!</title>
    </head>
    <body>
      <h1>Hello World!</h1>
      We are using node.js <script>[removed](process.version)</script>.
    </body>
  </html>
$ cat ./nw-hello-world/package.json
  {
    "name": "nw-hello-world",
    "main": "index.html"
  }

Now compress all the files in the project folders into a ZIP archive with extension .nw, in this case we will compress index.html and package.json into called app.nw: $ zip app.nw index.html package.json

Download the pre-built binary for your platform from here and usit to open the app.nw file: $ ./nw app.nw

For more information on how to write/package/run apps, see:

Credits

Call all Node.js modules directly from DOM and enable a new way of writing applications with all Web technologies.

Node-Webkit GitHub Repository Wikipedia Nodejs Wikipedia Webkit Engine

Development Stats

1 month ago
  • cixtorf005366Added index file in default Nginx virtualhost
1 month ago
  • cixtor5b587deAdded configuration for the Fast-CGI proxy for PHP scripts
1 month ago
  • cixtor3635ef6Added support for Nginx and Fast-CGI in bootstraper
1 month ago
  • cixtor134c2e5Added links to each program in the PATH env variable
  • cixtoreec04c6Added new PHPUnit methods for the deprecated exceptions
  • cixtorf61fba0Added more snippets for the PHPUnit autocompletion
  • cixtor09384fbModified binary path for all the SublimeText linter
  • cixtor1816b99Fixed multiple syntax errors in the .bashrc script
  • cixtordcaf0a2Added GORACE and additional binary path to GOPATH
  • cixtore67d4c0Fixed extract alias to prevent volatile globbling
  • View comparison for these 7 commits
1 month ago
1 month ago
  • cixtor8984214Added new screenshot and deleted unnecessary files
1 month ago
  • cixtordc8c72fAdded logger and separated into different files
  • cixtor6438ecfModified JavaScript library to clean the binds
  • cixtor1930cacAdded required JavaScript code to process events
  • cixtora6decbbAdded HTML interface with stylesheet and font files
  • cixtor22c50c8Added support to render static files without dir listing
  • cixtor8821edaAdded index handler with template and dummy content
  • cixtor7a94b51Added initial Go implementation for the API service
  • View comparison for these 7 commits
1 month ago
1 month ago
  • cixtor018b377Added new methods to set the user avatar and omit errors
  • cixtor77c8b47Added implementation for the users.profile.set method
  • cixtor01fafabAdded implementation for the users.profile.get method
  • cixtor5d29349Added implementation for the team.billableInfo method
  • cixtor4075f20Added implementation for the chat.meMessage method
  • cixtor81c85f3Added implementation for the bots.info method
  • cixtor7c5226bFixed trailing period for each new API service endpoint
  • cixtor79a2ab5Added implementation for the auth.revoke method
  • cixtor7059654Added implementation for the groups.createChild method
  • cixtore469171Added implementation for the groups.create method
  • cixtora428189Added implementation for the groups.invite method
  • cixtor645e314Added implementation for the groups.kick method
  • cixtor8e171aaAdded implementation for the groups.leave method
  • cixtor6065f96Modified archive and unarchive methods to recycle code
  • cixtorb3112a1Added implementation for the groups.rename method
  • cixtor27cb48aAdded implementation for the groups.unarchive method
  • cixtorb7b2d35Added implementation for the groups.archive method
  • cixtor61cd3f8Removed unnecessary CLI interface for simplicity
  • cixtord0c037bAdded new methods recently included in the API service
  • View comparison for these 19 commits
1 month ago
  • cixtorf8714aaAdded implementation for the channels.unarchive method
  • cixtord5e342eAdded implementation for the channels.archive method
  • cixtorf1a530eAdded implementation for the channels.leave method
  • cixtor7c473d9Added implementation for the channels.kick method
  • cixtor2e007ffAdded implementation for the channels.rename method
  • cixtor48cee6fAdded implementation for the channels.invite method
  • cixtorc63b0dcAdded implementation for the channels.create method
  • cixtorecb080cAdded implementation for the channels.join method
  • View comparison for these 8 commits
1 month ago
  • cixtor7dc2f1bAdded option to activate debug information
2 months ago
  • cixtor4753935Added alias to colorize man command using less pager
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
  • cixtorfc466baAdded project description and screenshot in front
2 months ago
cixtor created branch master at repos/cixtor
2 months ago
cixtor created repository cixtor 2 months ago
3 months ago
  • cixtorb398820Added scroll past end of file in main code editor
3 months ago
3 months ago
  • cixtor34c7ca2Modified logic of the settings in database checker
3 months ago
  • cixtorc7fbbe3Modified default value for the available updates alerts
3 months ago
  • cixtor6794849Fixed undefined array and object keys in audit logs
3 months ago
  • cixtor74478d3Fixed incompatibilities with foreign API service responses
3 months ago
3 months ago
  • cixtor0558514Added option for number of pages in WordPress tickets
  • cixtoraba6502Added more network locations in domain performance tool
  • cixtor6a86a99Modified domain connection time tester for readability
  • cixtor3f9aa03Modified massive Git updater script to cleanup code
  • cixtore727a11Modified coding standard for the massive Git updater
  • cixtor023c5b6Fixed DNS lookup tool to prioritize last nameservers
  • View comparison for these 6 commits
3 months ago
  • cixtoraf46d6aAdded development option to keep using the database
3 months ago
  • cixtore95d668Added development option to keep using the database
Do you have a project idea? Let's make it together!