This project contains the draft specification for the Google Wave Federation Protocol and the Java source code for the Google Wave Federation Prototype Server. The Prototype Server contains the Operational Transform (OT) code and the underlying wave model, the Federation Protocol, and a basic client/server prototype that uses the wave protocol. The OT code is the heart and soul of the collaborative experience in Google Wave and we plan for that code to evolve into the production-quality reference implementation.
Installation
Please see the Installation instructions on how to download and install the prototype server.
Get Involved
If you'd like to get involved with this project, please learn more at http://www.waveprotocol.org/. Discussions about the protocol, running the server, and testing take place on http://groups.google.com/group/wave-protocol, while code reviews and source code commit notifications are posted to http://groups.google.com/group/wave-protocol-code-discuss, please subscribe to these groups if you'd like to receive emails. Before diving into the discussion please take a moment to read the Wave Protocol FAQ
If you are interested in contributing to the code, please read about Submitting Code.
What's not in this project?
There are several pieces of wave that have been open sourced. Two pieces that are NOT in this project are the Wave Robot Java Client and the Wave Robot Python Client, which each have their own projects.
It is important to note that the code released is not a full XMPP server, it is an external application that implements XEP-0114, the Jabber Component Protocol, which is a standard way for an XMPP server to support extensions. This way you can experiment with the Federation Protocol using your favorite XMPP server, and we don't have to build and maintain an XMPP server in addition to working on Wave. The server code also doesn't contain any robot, gadget, or embedding functionality.
Another thing you will not find in the released code is a web server. Almost everything you saw at the Google I/O demo and all of your interactions with the Google Wave today are done through a browser. There is no web serving code in this release, instead of interacting with the server through a web page you interact with it via a simple wave client. Included in the released code is a small and simple text-based wave client that understands wave and operational transforms. The protocol that it talks to the server is defined only in code and isn't something we are working on standardizing at this time, but we are open to hosting those discussions on the wave-protocol mailing list and believe that the protocol used in the demo client is a good place to start.