Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


                          Apache Shindig Features

  What is it?

  Shindig is a JavaScript container and implementations of the backend APIs
  and proxy required for hosting OpenSocial applications.

  This is the features component of Shindig.


  The most up-to-date documentation can be found at

  Using features

  You can automatically include new features into your shindig server by adding
  them to this directory. Features should exist in a self-contained directory
  with the following structure:


  The structure of feature.xml is as follows:
  TODO: link to xml schema for feature.xml

  <?xml version="1.0"?>
    <name>your-feature-name (required)</name>
    <dependency>any dependency you have (optional, may have multiple)</dependency>
    <gadget> (optional)
      <script src="code-to-run-inside-gadget.js"/> (optional, may have multiple,
          may use web resources as well but we strongly encourage bundling your
          javascript with the xml)
    <container> (optional)
      <script src="code-to-run-inside-container.js"> (same as for <gadget>)
    <all> (optional, to mean for both gadget and container)
      <script src="code-to-run-inside-either-gadget-or-container.js"> (same as for <gadget> or <container>)
          optional, to export API in compiled JS for external usages and incremental-loading,
          via and exportJs JS.
        <exports type="js"></exports>
            optional, the API to export, for two scenarios:
            1. the JS code internally can use obfuscated/property-renamed g.r.c() to reduce
               size, but external clients continue to use unobfuscated (exported-to-window)
            2. incremental-loading of JS. rpc.js is loaded (gadgets.rpc.* is exported). Then,
               dynamic-height!rpc.js can be loaded without rpc (and its transitive dependencies)
               and it will use unobfuscated (or extern'ed) gadgets.rpc.

  Please always make sure that all files you provide are encoded as utf8.

  When adding new features, your javascript should conform to shindig javascript
  coding conventions. This means that you should not be producing new globals and
  your feature should be compatible with Caja.

  When committing a new feature, you should update the features.txt file by
  running the following script in a unix-like environment:

  ls -R1a features/**/*.xml > features/features.txt

  TODO: Instructions for regenerating features.txt for other operating system


  Please see the file called LICENSE.

  Shindig URLS

  Home Page:
  Mailing Lists:
  Source Code:
  Issue Tracking:
Something went wrong with that request. Please try again.