Fwd: An Open Source implementation of Google Drive Realtime API

389 views
Skip to first unread message

田传武

unread,
Jul 8, 2014, 10:28:09 AM7/8/14
to goodow-...@googlegroups.com
Hi all,

I'd like to share an open-source project which implements nearly all features of the google drive realtime api. Google Drive Realtime API provides Google Docs–style instant collaboration. It lets multiple people edit the same data simultaneously.

This project was inspired by Apache Wave, it is available on github at https://github.com/goodow/realtime-store
The server runs on vert.x, and uses a memory store by default, but also provides a persistent data store based on ElasticSearch and uses Redis to scale across multiple frontend servers. The redis+elasticsearch code is ported from livedb, really appreciate Joseph Gentle and the ShareJS community, thanks!

You can try out the features of the Realtime API on the live playground, or get the Android demo App on google play.
There is also an Objective-C client library for iOS and Mac OS X, but it is not yet fully tested, so please use at your own risk!

Enjoy!

田传武

unread,
Jul 8, 2014, 10:35:10 AM7/8/14
to goodow-...@googlegroups.com
realtime-store has there major modules, each module can be used separately:

1) realtime-operation  The operational transform library, currently only supports json-like data type, no xml support.

2) realtime-channel Distributed publish/subscribe event bus which penetrates from server to browser/iOS/Android, currently use SockJS for browser, WebSockets for iOS/Android, ant can be implemented using MQTT or XMPP.

3) realtime-store Persistence layer, currently supports memory and redis+elasticsearch storage. Realtime API is also implemented here.

So far, there has no editor integration, and doesn't contain any ui-related code, but will.
Benefit from the distributed publish/subscribe event bus across server/browser/iOS/Android and no ui specific code, it is easy to implement client libraries on multiple platforms.

田传武

unread,
Jul 15, 2014, 1:49:05 AM7/15/14
to goodow-...@googlegroups.com
The cursor issue was fixed for the live web playground and the android application, now you can do live concurrent editing like which google docs provides.

Currently supported features:
  • User presence
  • Undo/Redo
  • Collaborative live JSON Data Model which is synchronized automatically between client and server
  • Automatically data conflict resolution powered by operational transformation
  • Two-Way Data Binding between the live model and view for javascript and android clients
  • Javascript, Android and iOS client libraries based on the SockJS EventBus bridge
  • Exactly the same API with Google Drive Realtime API

Charles Chan

unread,
Aug 2, 2014, 5:52:53 AM8/2/14
to goodow-...@googlegroups.com

Amazing efforts. Thanks for sharing.

Charles

israel...@societao.com

unread,
Jan 21, 2015, 6:18:05 PM1/21/15
to goodow-...@googlegroups.com
Can you tell me if your Android and iOS libraries uses SockJS instead websockets?

田传武

unread,
Jan 22, 2015, 6:36:24 AM1/22/15
to goodow-...@googlegroups.com
JavaScript client uses SockJS, Android client uses Java-WebSocket, iOS client uses SocketRocket.

Martin Mauch

unread,
Jun 1, 2015, 5:04:46 PM6/1/15
to goodow-...@googlegroups.com
By the description I'm not entirely clear: Can you use the client libs to work with Google Drive itself?
I would like to create an Android application that has live collaboration using Google Drive (in this case Mindmup).

If it is currently not possible: What would be needed to enable accessing Google Drive?

Best
  Martin

田传武

unread,
Jun 2, 2015, 10:10:39 PM6/2/15
to goodow-...@googlegroups.com, martin...@gmail.com
You cannot use realtime-store with Google Drive, realtime-store has its own server and clients.

Martin Mauch

unread,
Jun 17, 2015, 2:31:10 PM6/17/15
to goodow-...@googlegroups.com, martin...@gmail.com
So do I understand correctly that the client API is identical but it uses a different client-server protocol?

田传武

unread,
Jun 17, 2015, 10:29:36 PM6/17/15
to Martin Mauch, goodow-...@googlegroups.com
Yes, the client API is identical and the client-server protocol is also very similar to each other.

--
You received this message because you are subscribed to the Google Groups "Goodow Realtime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to goodow-realti...@googlegroups.com.
To post to this group, send email to goodow-...@googlegroups.com.
Visit this group at http://groups.google.com/group/goodow-realtime.
To view this discussion on the web visit https://groups.google.com/d/msgid/goodow-realtime/403b8076-bab7-43ae-ace5-9cc8df0b3c83%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages