SwellRT is a
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
backend-as-a-service and API focused to ease development of apps featuring
real-time collaboration. It supports the building of mobile and web apps, and aims to facilitate interoperability and
federation
A federation (also known as a federal state) is a political entity characterized by a union of partially self-governing provinces, states, or other regions under a central federal government (federalism). In a federation, the self-governin ...
.
History
Origins
SwellRT has its origins in the work done within the GRASIA research team at the
Universidad Complutense de Madrid
The Complutense University of Madrid ( es, Universidad Complutense de Madrid; UCM, links=no, ''Universidad de Madrid'', ''Universidad Central de Madrid''; la, Universitas Complutensis Matritensis, links=no) is a public research university loca ...
, as part of the EU-funded project
P2Pvalue (2013–2016), in a team led by
Samer Hassan
Samer Hassan is a computer scientist, activist and researcher, focused on the use of decentralized technologies to support commons-based collaboration. He is Associate Professor at Universidad Complutense de Madrid (Spain) and Faculty Associate ...
. In 2014, the developer Pablo Ojanguren took the lead in forking
Apache Wave
Google Wave, later known as Apache Wave, was a software framework for real-time collaborative editing online. Originally developed by Google and announced on May 28, 2009, it was renamed to ''Apache Wave'' when the project was adopted by the Apa ...
, dropping several components, re-engineering it, and building a "Wave API" to build applications on top. In 2015, such Wave API became a standalone product named SwellRT.
Impact on Apache Wave project
In 2016, several discussions took place within the Apache Wave community, aiming to tackle the stagnation and crisis state of the project. The Apache Software Foundation mentor of Apache Wave, Upayavira, was concerned on the project stagnation, but framed SwellRT as Wave's potential savior:
Once more Wave is on the brink of retirement. However, this time, an offer has been made of code from SwellRT, which is a fork of Wave itself, and a concall has been scheduled for interested parties to discuss whether it is a go-er. It is my (limited) understanding that many of the complexity issues in the Wave code that have prevented community development have been resolved in SwellRT.
Eventually, Wave was approved to continue within Apache incubator program, and a copy of SwellRT codebase was placed in the Apache Wave repository in order to grant the Wave community access to it. In this regard, Intellectual Property of SwellRT was transferred to the Apache Foundation in 2017.
Recent recognition
In both 2016 and 2017, SwellRT participated in the Google Summer of Code as part of the set of projects from the
Berkman Klein Center for Internet and Society at
Harvard University
Harvard University is a private Ivy League research university in Cambridge, Massachusetts. Founded in 1636 as Harvard College and named for its first benefactor, the Puritan clergyman John Harvard, it is the oldest institution of higher le ...
. In both years, the contributions were highly relevant. In 2016, SwellRT replaced its XMPP-based federation protocol (inherited from Apache Wave) for the
Matrix.org federation protocol. In 2017, end-to-end encryption was implemented, following an innovative approach to encrypt communication in
Operational Transformation
Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced collaborative software systems. OT was originally invented for consistency maintenance and concurrency control in collaborative edit ...
collaborative documents.
SwellRT received international recognition within the fields of decentralized technologies and real-time collaboration. In the Decentralized Web Summit, organized by the
Internet Archive
The Internet Archive is an American digital library with the stated mission of "universal access to all knowledge". It provides free public access to collections of digitized materials, including websites, software applications/games, music, ...
in San Francisco, it was selected as one of the current innovative decentralization technologies. It was also selected by the Redecentralize advocacy group, as one of the redecentralization projects whose founders were interviewed, It launched an international contest to develop apps using SwellRT, which was awarded to free/open source developers in India. And the project was presented as invited talk in the
Center for Research on Computation and Society at
Harvard's School of Engineering and Applied Sciences, and in several international conferences. SwellRT was one of the first adopters of the
Contributor Covenant
The Contributor Covenant is a code of conduct for contributors to Free and open-source software, free/open source software projects, created by Coraline Ada Ehmke. Its stated purpose is to reduce harassment of minority, LGBT and otherwise underrepr ...
code of conduct.
Technical approach
SwellRT is a fork from Apache Wave, inherits some of its architecture and technology stack. However, it grew beyond the limits of Wave, first presenting itself as a web framework and nowadays growing to a backend-as-a-service platform. Its current technical approach covers the following:
* It is fully
free/open source software.
* It is developed in Java.
GWT with JSInterop is used to generate JavaScript API reusing the same source code. Android client is also built from the same Java sources.
* It provides an extensible and pluggable rich-text editor component for Web (only) supporting custom
annotation
An annotation is extra information associated with a particular point in a document or other piece of information. It can be a note that includes a comment or explanation. Annotations are sometimes presented in the margin of book pages. For anno ...
s and
widgets.
* Real-time data storage is based on Wave's
Operational Transformations model, thus it is eventually consistent.
* It is designed to maximize interoperability, and follows a
federation approach similar to Apache Wave, using
XMPP
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it ...
or
Matrix.org communication protocol. It aims to support the creation of apps that are federated, i.e. rely on multiple interoperable servers, and objects shared across servers. This allows organizations to control their own data.
Collaborative objects
SwellRT provides a programming model based on collaborative objects. A collaborative object is a JSON-like object that can be shared by some users (or groups) that can make changes in real-time. Changes are propagated (and notified) in real-time to any user connected to the object.
A collaborative object can store properties of simple data types (string, integers, etc.) as well as rich-text and references to files or attachments. This approach is suitable to implement any document based collaborative application like text editors or spreadsheets.
Objects and participants are uniquely identified on the Internet enabling decentralized access from different federated servers.
Main features
* Real-time storage (
NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
)
* User management
* Event based integration
* Federation (
XMPP
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it ...
or
Matrix.org)
Applications using SwellRT
SwellRT facilitates the development of mobile/web apps, and thus several apps have been built using this technology. Apart from the demos provided by SwellRT, third-parties developed other demo apps such as a Q&A site, an extension to extract keywords, a collaborative scrollbar, a political participation Android app, a Trello-SwellRT connector. Besides, two fully-fledged apps are currently using SwellRT technology:
* JetPad, a GoogleDoc-like collaborative editor, free/open source and federated
* Teem, a free/open source web/mobile app for the management of communities and collectives
See also
*
Apache Wave
Google Wave, later known as Apache Wave, was a software framework for real-time collaborative editing online. Originally developed by Google and announced on May 28, 2009, it was renamed to ''Apache Wave'' when the project was adopted by the Apa ...
*
Real-time text
Real-time text (RTT) is text messaging, text transmitted instantly as it is typed or created. Recipients can immediately read the message while it is being written, without waiting.
Real-time text is used for conversational text, in collaboration, ...
*
Collaborative real-time editor
A collaborative real-time editor is a type of collaborative software or web application which enables real-time collaborative editing, simultaneous editing, or live editing of the same digital document, computer file or cloud-stored data – suc ...
*
Operational transformation
Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced collaborative software systems. OT was originally invented for consistency maintenance and concurrency control in collaborative edit ...
*
Federated social network
A distributed social network or federated social network is an Internet social networking service that is decentralized and distributed across distinct online service provider, service providers (similar to email, but for social networks), such as ...
References
External links
Official website* {{GitHub, SwellRT/swellrt
2015 software
Software using the Apache license
Rich web application frameworks
Collaborative real-time editors
Real-time technology
Real-time web
Collaborative software
Federated identity
Cross-platform free software
Free software programmed in Java (programming language)
Web development software
Android (operating system) development software
Application programming interfaces
Distributed computing projects
Open-source cloud applications