Merge branch 'next' of into next
tree: 6afe92cab62db543cf2a0644c1426fc9f85070b1
  1. assets/
  2. bin/
  3. build/
  4. doc/
  5. lib/
  6. targets/
  7. test/
  8. thirdparty/
  9. .csslintrc
  10. .gitignore
  11. .gitmodules
  12. .jshintignore
  13. .jshintrc
  14. configure
  16. Jakefile
  18. package.json


A browser based, platform agnostic mobile application development and testing tool.

All source code (excluding third party libraries) are subject to:

Copyright (c) 2011 Research In Motion Limited


All assets in this repository, unless otherwise stated through sub-directory LICENSE or NOTICE files, are subject to the Apache Software License v.2.0.

In particular, the assets under assets/*/images are excluded from the Apache Software License v.2.0. Please see the NOTICE file for more details.

Build Requirements

  • nodejs, npm
  • OSX or linux (windows is not currently supported for development)

Getting Started

If you plan to dive into the source, be sure to check out the HACKING file.

To get started, you need to setup a few things, first- run (in the project root):


This script will pull down the needed npm packages and initialize the submodules.

Build Commands


This will build ripple to the pkg/ folder. In that folder there are various targets that can be used.

jake -T

This will describe all the available commands for building and running the tests, etc.

Running As A Chrome Extension

  • Go to the extension management page (chrome://chrome/extensions/) in chrome.
  • Ensure that you have selected the developer mode checkbox.
  • Click the Load Unpacked extension button.
  • Select the pkg/chrome.extension folder.

NOTE: For development you should be fine to just build with jake and refresh your browser. If you end up editing anything in the ext folder you will need to refresh the extension from the extension management page.

For more information see doc/

Running Inside Other Web Browsers

Ripple is (by-design) browser agnostic, and is able to run inside any web browser (with disabled web security).

However, this has (for the most part) only been used in Chrome (and as a result certain things are used that are not supported/tested in other browsers).

If you want to run it inside other browsers, you will need to use the pkg/web target. This is essentially a standalone version of the UI.

Note: This is not actively maintained, and may not work as expected.

To get it running inside Chrome you should start it with these command line flags:


CLI & NPM Package

There is a command line interface that can be paired with the client (UI).

It can be used for various things, such as statically hosting an application, and running a local (cross origin) XHR proxy.

Eventually, this will be available on the NPM registry. For now (to install):

git clone ripple
cd ripple
npm install -g pkg/npm

This will install a global script called ripple. To see usage, run:

ripple help

Note: If you don't want to use NPM, you can just do this:

node pkg/npm/bin/ripple help


The master branch is the latest (stable) release. The next branch is where all development happens.

If you like the project, and want to contribute code, please issue a pull request (on GitHub) into the next branch.

Note: You will need to be an official contributor before your code can be accepted.

Code Guidelines

  • 4 spaces per editor tab.
  • jake lint, no new lint errors introduced.
  • All unit tests are green.

Reference Material & Community

You can also find associated reference material for the Ripple tool as well as contributor forums at the following locations.