Sunday, 23 August 2009

My Google Wave Client

Google released a reference implementation of a Wave client and server in July, written in Java, that you can download and experiment with. When Mickaël Rémond wrote about using the reference implementation with ejabberd, I decided that it was time to get my hands dirty.

I got the reference implementation working, and I could chat with multiple participants in the console clients. However, I wanted to know more about what was happening behind the scenes in the client, and more importantly, the server (and how operation tranforms work).

So I decided to write my own client in Erlang that communicates with the reference server. This way I could investigate what was happening in the client and the server, and gain more knowledge about Wave. It required a bit of reverse engineering, and messing around with protocol buffers (the client communicates with the server using these), but it works nicely.

I've created a video to demonstrate it. Happy watching!

Vimeo link

P.S. I used ngerakines's implementation of Erlang prototocol buffers, and the Nitrogen Web Framework.

P.P.S. I'm going on holiday for 2 weeks, so if I don't reply to comments, please be patient. I will do so when I get back...


11 comments:

Daniel said...

Hi,
Really nice implementation. Nice to see that the Reference implemtation can be used.

/daniel
Masteringwave.com

Mapper99 said...

You can still get a free Google Wave Invite here: Google Wave Invites

Mitchell said...

Is there a way to get more of a tutorial on how to get the web client going? I have the console but I of course want the web client.

Benjamin Nortier said...

Hi Mitchell

Would you like a tutorial on how the messaging works between the reference console client and server so you can make your own web client, or do you want me to publish the code, or both?

Mitchell said...

Well I'm not gonna ask ya to do both but it'd be nice to follow along with the code! I want to understand it all so a tutorial would be greatly appreciated! Credits would go to you!

GoncalvesPinto said...

Cool stuff!

Could you provide me the erlang/nitrogen code you used for this demo?

I really would like to try out this implementation.

Best Regards,
eugenio@goncalvespinto.pt

Mitchell said...

Benjamin,

It would be cool to get the code while you work on the tutorials if you wouldn't mind. This would be great!

hanum said...

I've got the invitation of Google Wave on November 25. Yay.. finally :D

GoncalvesPinto said...

I could have sent you one. I still have 9 wave invites to give..

celsamfulghum said...

視訊聊天室ut爽翻天情趣用品本土av成人動畫成人圖片色情遊戲080聊天室成人圖片區成人圖片色情遊戲080聊天室成人圖片區交友104速配網色情遊戲080聊天室成人圖片區交友104速配網情色小說080聊天室

Witek Baryluk said...

Is there any progress on this? Why would you not put source code as-is on the github?