Hello World!
I, p2k, main developer of PyGoWave, am currently rebuilding this project from the ground. I have decided this step, because I want to change the JavaScript Framework to SproutCore for a far better user experience and because the existing data structures cannot be used efficiently in combination with the Federation Protocol.
Therefore I renamed the original project to "pygowave-legacy", which is no longer maintained, and created a new repository with the old name.
Please delete your old forks or also rename them to "pygowave-legacy" and create a new fork of this project to keep up. All other references to the wiki entries or other files might also be invalid now, please take care of that.
- The Django backend will be dropped; only Twisted is used from now on
- Orbited will be kept as Comet-Framework for the Web Client
- The data models will be completely redesigned to fit the Federation Protocol requirements; all data will be XML documents
- There will also be an Erlang port of the RPC server as before
- For persistency, plain XML files, SQL databases and CouchDB will be supported
- There will be means to convert operations and snapshots of waves for use with several protocols via a modular approach
- The old PyGoWave protocol will be replaced by the official Wave Data Protocol with a small extension to allow subscribing to events and for receiving letter-by-letter updates (this will be called "PyGoWave Simple Data Protocol")
- The official Wave Robot Protocol will be fully supported at a later point
- For clients other than the Web Client, there will be a bigger extension to the Wave Data Protocol which allows the reception of XML-operations (called "PyGoWave Extended Data Protocol")
- The client APIs, which will be available for lots of programming languages and platforms, will also come in two tastes: simple and extended
- The extended API features both raw XML data manipulation as well as wrapped Wave/Wavelet/Blip models driven by the PyGoWave Extended Data Protocol
- The simple API features Wave/Wavelet/Blip models only and uses the PyGoWave Simple Data Protocol
- The complete Web Client will be written with SproutCore, a versatile JavaScript framework which allows to write desktop-quality GUI applications directly in JavaScript
- The pure JavaScript code of Orbited will be ported to SproutCore as well as the STOMP protocol which is still used as underlying transport for message bundles
- The new frontend tries to mimic the behavior of the official Wave web frontend as good as possible (or even better)
- A new sub-project will be spawned to automatically convert the python code of the core algorithms to a number of other programming languages resp. frameworks just like PyCow
- In detail, the PyGoWave APIs will be available for: Python, JavaScript/SC, C++/Qt, ObjC/NeXT, C#/.NET, Java, PHP, Erlang and possibly others at a later point
- This converter will only translate a small subset of Python, though