Hey all, We've been working on a number of RPC enhancements locally and thought that it might be helpful to open-source some of them (prompted by a recent suggestion from Ray Cromwell). I've created a new Google Code project that encapsulates them here:
http://code.google.com/p/gwt-rpc-plus/ It's an umbrella project for a number of RPC enhancements that we're using. It includes a set of building blocks and some higher-level code that builds on them to enhance the current GWT RPC functionality: 1. A set of 'bare-metal', strongly-typed JS collections optimized for both RPC and client-side use. These collections are designed to mimic (but not fully support) the interfaces of the standard Java List, Map and Set. They are code-generated and based on JavaScriptObject (see here: http://code.google.com/p/gwt-rpc-plus/source/browse/#svn/trunk/ gwt-rpc-plus/gwt/com/dotspots/rpcplus/client/jscollections). They are essential to the Thrift RPC system (mentioned below), but are useful as their own standalone collections. 2. Alternative JSON and text transports, including a cross-domain transport using window.name and standard XMLHttpRequest communication. 3. A set of fast utility classes to parse and emit JSON using browser- native code where possible (ie: JSON.parse/stringify, eval/uneval). 4. A way to plug alternative transports into GWT RPC (based on a technique similar to this: http://timepedia.blogspot.com/2009/04/gwt-rpc-over-arbitrary-transports-uber.html) . It currently includes a way to easily replace the RPC transport with any text transport (including the window.name transport mentioned above). 5. A Thrift-based, versioned RPC framework that can replace GWT RPC entirely (built on top of the above-mentioned pieces). The code in the library was extracted from a bunch of code scattered throughout our project. I'm still working on refactoring and cleaning up parts of it, so it's likely to change over the next few weeks. None of the architecture is set in stone, so anyone interested in helping contribute/architect is welcome to join in. Thanks! Matt. --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---