Wave extensions are a way to augment the functionality of waves and the wave client, and they often involve some combination of robots and gadgets.
To use an extension, a user must first install it by interacting with an extension installer in a wave. The installer gives information about the extension so the user can decide whether to install it:
An extension can decorate the client in various ways, like by adding buttons to the editing toolbar or items to the dropdown menu, and the user can trigger the extension by clicking the toolbar button or menu item.
For example, the "Waffle" extension shown above adds a button to the editing toolbar, and when the user clicks that button, a Waffle gadget is inserted in the wave at the current position:
Extensions are described using an XML format called an Extension Installer Manifest. To find out how to write an installer manifest, read the Developer Guide.
As mentioned above, extensions often involve adding a robot or a gadget. Those extension mechanisms are described here, and contrasted in more detail below:
When creating an extension, you often start by deciding whether you are writing a robot, a gadget, or some combination of the two. You can use them together, but they generally serve different purposes:
The following table summarizes the differences between the various extension options: