Google Wave for Emacs

Last edit

Summary: Rückgängig gemacht auf den Stand vom 2013-08-24 11:21 UTC


< * Browse and WikiModes waves (documents) on the wave server


> * Browse and search waves (documents) on the wave server

Wave Client for Emacs

Project Information

This open-source project was created by AndrewHyatt, a Google engineer working part-time on it. Please see the wave-client-for-emacs project page for the official location.

Right now the project is pre-alpha, and has the basic ability to read Waves.

Pre-project discussion

As of this writing, a Wave client for Emacs is complete vapourware. But wouldn’t it be awesome?

What would be the best way to start?

Very good idea. Even the introductory video features a text client.

The Google guys said they will open source the client as well, so the easiest way would be to wrap the network communication code included in it. I assume it will be properly separated from the GUI.

In the long run a native Emacs lisp implementation of the protocol would be nice.

I’d also love to see this, but think it’d be best integrated with Emacs Org-mode, see:

If it is webservice driven then we could use that.

It’s based on Jabber^W XMPP, but I guess that doesn’t mean that they don’t have a web service up, too.

The reason I want this is that I use LEIM religiously.

It is based on XMPP. I see Jabber much like IM-centered thing whereas XMPP is much more than that. I would really like to see something for Emacs too. – XavierMaillard

Wave mainly uses XMPP for server-server communication (federation). The primary client protocol (for now at least), which is also used by the text-mode client demonstrated in the video, seems to be an undocument binary protocol based on Google’s protocol buffers: The open-sourced toy-client does indeed include an implementation of that protocol: If I understand the protocol correctly, it would still be possible, maybe more complicated though, to write an XMPP-based client.

People interested in the content of this page may also be interested in CollaborativeEditingJanMoringen

Please note: the wave client-server protocol is not based on XMPP/Jabber and is not (yet) documented.

Having used the Wave developer preview for a couple of weeks, I strongly suggest effort goes into a native Emacs Lisp client, i.e.- a ‘wave-mode’. This could perhaps be based on Rudel, but I don’t know Rudel well enough. Wave is sufficiently different from IM, email, and wikis that it deserves a special mode. The mode would need to:

  • Browse and search waves (documents) on the wave server
  • Store and look up contact information (and potentially presence information)
  • Edit waves collaboratively in real-time
  • Show wave structure (in-line comments, etc.)
  • Allow a new buffer to be turned into a wave by sending it to the wave server
  • Deal with extensions somehow
  • Deal with incoming new wave notifications (pings or “bats”)

Note that currently the wave client-server protocol is not documented. At the moment, it’s merely programmed using GWT RPC with a likely smattering of protocol buffers. For a full diagram of the protocols check out: - farra


Loosely related info: there is already an existing system similar to Wave and it has an emacs lisp client: LysKOM

> Does %%LysKOM%% work in CVS Emacs 23?

Yes, it does, but I’d suggest using the CVS lyskom client then.

Wave might be even more awesome than LysKOM?. As far as I’ve always understood it (I might be wrong about this), LysKOM?’s discussions are chained to a particular server, much like phpBB works. Another thing I’m not sure about wrt LysKOM? is whether or not you can edit stuff. What I like about Wave is it’s wiki-like properties. I hate trawling through overly redundant BB-based threads looking for information. A wiki page has the interesting information early. Don’t get me wrong, I’ve long admired LysKOM? but I’ve never been a member of Lysator.

– Each LysKOM? server stands alone, yes, And no, LysKOM? does not support edits. There is however support for adding footnotes and remarks to posts made. I personally think that wave has a lot of potential, but at the same time KOM has a 20 year head start. :)

If the real thing lives up to what the demo video promises, and if I can find a client and a server, Wave might replace most of my other forms of communication.

Wave Robot for EmacsWiki

An other Emacs-related project could be the development of a Google Wave robot for reading and editing EmacsWiki.

Feel free to contact me regarding alternatives to HTML scraping. I’d also be willing to add server-side code. – AlexSchroeder