The ShareJS rewrite is coming along, and I have an alpha up on npm
(npm install share@0.7 to try it out).
The code is almost entirely lacking in documentation - but have a look
in prototype/server for the new server API, and prototype/public/* for
some client examples.
I think I've rewritten all the core functionality (*except cursors).
The new code is almost certainly buggy, and definitely missing your
favorite features. So I need help getting everything ported across for
it.
The things that are missing are:
- Ace and Codemirror bindings. The textarea binding has been ported
across -
https://github.com/share/ShareJS/blob/rewrite/lib/client/textarea.js
. These bindings should be pretty easy to update. I'm not sure if the
bindings should live inside ShareJS or in a separate project.
- SockJS /
socket.io examples. ShareJS no longer depends on any
connection infrastructure. That stuff lives entirely outside of
ShareJS. The browserchannel example is here:
https://github.com/share/ShareJS/blob/rewrite/prototype/server.coffee#L33-L59
... and the client expects a websocket-like object. It _should_ work
with any of the connection types (including websockets) out of the
box, but it would be great to have some example bindings kicking
around. They should probably live in separate tiny little projects.
- Etherpad OT & bindings. The etherpad stuff is all broken, though it
shouldn't be too hard to port the old code across. ShareJS's OT types
live here now:
https://github.com/share/ottypes - though you could
just monkeypatch in an etherpad type on the server
(require('ottypes').etherpad = {...}) and edit window.ottypes.etherpad
= {...} to make it work on the client.
- All the database bindings. The API is missing documentation, and the
mongo database binding is kinda complicated at the moment. I should
probably make a simple example database binding that works to make
things easier. There's also no tests for these guys. So, plenty of
work to do!
- JSON API. The old JSON API code was really buggy. Jeremy never
finished it, and nobody bothered to fix it. So for now, I've disabled
it entirely. This code needs tests, and it needs to be fixed for the
new API, and subdocs need to keep working once they've been moved.
- All the examples. The new APIs should make these a lot easier to
write (especially the ability to create documents with initial data),
but there's work porting them across.
- Documentation on the wiki. The old stuff needs to be renamed out
(maybe prefixed with 0.6* or something) and new documents need to be
made describing the new changes.
As you can see, there's millions of little things that need to be
fixed up to make the new version of ShareJS useful. Please consider
helping out if the new version of ShareJS is useful for you.
Thanks in advance.
Joseph