MCPcopy Index your code
hub / github.com/SwellRT/swellrt

github.com/SwellRT/swellrt @v0.22.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.22.2 ↗ · + Follow
34,232 symbols 124,198 edges 2,548 files 14,566 documented · 43%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SwellRT, a Real-Time Federated Collaboration Framework

SwellRT is a collaboration framework based on Apache Wave. It allows to develop real-time collaborative apps for Web (JavaScript or GWT), Android and Java.

In a nutshell, SwellRT provides to apps shared objects that can be modified by different participants on nearly real-time distributing changes and managing concurrency.

In particular, text objects support collaborative real-time editing.

You can install your own server infrastructure or build on top of an existing SwellRT provider. SwellRT servers can be federated, so your app can be deployed in a decetralized way and become interoperable easily.

Documentation

You can visit the SwellRT Wiki for documentation and examples.

Licensing and third party dependencies

SwellRT is provided under the Apache License 2.0. Please check out README.md for a full list of libraries used and licenses.

SwellRT uses Atmosphere as communication library for WebSockets and Long-Polling.

Developing SwellRT

Packages

Package
org.swell.model Generic Wave Data Model Java & GWT
org.swell.client Wave Protocol Client mods GWT
org.swell.webclient Wave UI Client mods GWT
org.swell.api JS API Generic Data Model GWT
org.swell.server Wave Java server mods Java

Debug (GWT Super Dev Mode)

First, launch the web server ant run-server serving the SwellRT javascript files.

Enable debugging of SwellRT/Apache Wave source code starting a GWT Super Dev session:

ant -f build-swellrt.xml swellrt-js-superdev

Then (by default) visit http://localhost:9876 and bookmark provided links for de/activate the Dev mode.

Go to your web (e.g. http://localhost:9898/test/index.html) and activate de Dev mode with the provided link.

You can now use the browser's debugger as usual. Please, be sure your browser's debbuger has the "source maps" option activated. Chrome is recommended.

For more info about GWT debugging, please visit http://www.gwtproject.org/articles/superdevmode.html

Debug issues

Debugging in the old hosted mode could raise the following error:

00:10:30,530 [ERROR] Failed to load module 'swellrt' from user agent 'Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0' at localhost:36570
java.lang.AssertionError: Jso should contain method: @org.waveprotocol.wave.model.adt.ObservableElementList.Listener::onValueAdded(Ljava/lang/Object;)
at com.google.gwt.dev.shell.CompilingClassLoader$MyInstanceMethodOracle.<init>(CompilingClassLoader.java:431)
...

It can be avoided removing the final modifier from overrided methods in the ObservableListJS class.

Extension points exported contracts — how you extend this code

ReadableType (Interface)
Class hierarchy declaring public contract of Type classes. Used to keep aligned features between generic and unmutable v [11 …
src/org/swellrt/model/ReadableType.java
Function (Interface)
A function that computes a result object of type V from an input of type K. @param the type of the [14 implementers]
src/com/google/wave/api/Function.java
Interface (Interface)
(no doc) [6 implementers]
proto_src/org/waveprotocol/box/common/comms/WaveClientRpc.java
DataFactory (Interface)
(no doc) [3 implementers]
test/org/waveprotocol/wave/model/operation/DataFactory.java
HistoryProvider (Interface)
The Interface HistoryProvider gives access to the browser history stack in order to access to the wave tokens. Also thi [8 …
src/org/waveprotocol/box/webclient/client/HistoryProvider.java
DocumentHitIterator (Interface)
A interface encapsulating iterating through a document. At some point we could consider turning this into an actual [7 …
src/com/google/wave/api/data/DocumentHitIterator.java
BlockingInterface (Interface)
(no doc) [6 implementers]
proto_src/org/waveprotocol/box/common/comms/WaveClientRpc.java
RandomOpGenerator (Interface)
(no doc) [3 implementers]
test/org/waveprotocol/wave/model/operation/testing/RandomOpGenerator.java

Core symbols most depended-on inside this repo

add
called by 1256
src/org/waveprotocol/wave/model/adt/BasicSet.java
get
called by 1095
src/org/swellrt/model/ReadableList.java
onChanged
called by 972
src/org/waveprotocol/wave/model/account/ObservableAssignment.java
build
called by 870
src/org/waveprotocol/wave/client/util/OverridingTypedSource.java
size
called by 707
src/org/swellrt/model/ReadableList.java
put
called by 564
src/org/waveprotocol/box/common/Receiver.java
toString
called by 543
src/org/waveprotocol/wave/model/util/Serializer.java
put
called by 471
src/org/waveprotocol/wave/model/util/IntMap.java

Shape

Method 29,765
Class 2,897
Interface 1,059
Function 361
Enum 150

Languages

Java97%
Python2%
TypeScript1%

Modules by API surface

proto_src/org/waveprotocol/wave/federation/Proto.java1,241 symbols
proto_src/org/waveprotocol/wave/concurrencycontrol/ClientServer.java1,135 symbols
proto_src/org/waveprotocol/box/common/comms/WaveClientRpc.java861 symbols
proto_src/org/waveprotocol/wave/diff/Diff.java532 symbols
proto_src/org/waveprotocol/box/server/persistence/protos/ProtoAccountStoreData.java433 symbols
proto_src/org/waveprotocol/box/attachment/AttachmentProto.java276 symbols
proto_src/org/waveprotocol/box/search/SearchProto.java270 symbols
src/org/waveprotocol/wave/client/util/ClientFlagsBase.java231 symbols
proto_src/org/waveprotocol/box/profile/ProfilesProto.java198 symbols
war/test/angular.min.js190 symbols
src/org/waveprotocol/wave/model/util/CollectionUtils.java171 symbols
src/org/waveprotocol/wave/client/editor/EditorImpl.java169 symbols

Datastores touched

(mongodb)Database · 1 repos

For agents

$ claude mcp add swellrt \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page