Skip to content
Decentralized, end-to-end streaming application and real-time user interface platform—home of the WARP multiplexed streaming protocol
Branch: master
Clone or download
c9r git subrepo pull swim-java/swim-core-java
  subdir:   "swim-java/swim-core-java"
  merged:   "abcc1b2"
  origin:   ""
  branch:   "master"
  commit:   "abcc1b2"
  version:  "0.4.0"
  origin:   "???"
  commit:   "???"
Latest commit 3054ca5 Mar 10, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
swim-java git subrepo pull swim-java/swim-core-java Mar 10, 2019
swim-js git subrepo pull swim-js/swim-ui-js Mar 10, 2019
.gitignore Initial commit Feb 18, 2019
LICENSE Import swim-js build tooling Feb 18, 2019 Initial commit Feb 18, 2019


Swim implements a complete, self-contained, distributed application stack in an embeddable software library. To develop server-side Swim apps, add the swim-loader library to your Java project. To write a JavaScript client application, install the @swim/core library from npm. To build a web application, npm install the @swim/ui and @swim/ux libraries.

Visit to learn more.


Swim unifies the traditionally disparate roles of database, message broker, job manager, and application server, into a few simple constructs: Web Agents, Lanes, Links, and Recon.

Web Agents

Swim applications consist of interconnected, distributed objects, called Web Agents. Each Web Agent has URI address, like a REST endpoint. But unlike RESTful Web Services, Web Agents are stateful, and accessed via streaming APIs.


If Web Agents are distributed objects, then lanes serve as the properties and methods of those objects. Lanes come in many flavors, value lanes, map lanes, command lanes, and join lanes, to name a few. Many lanes are internally persistent, acting like encapsulated databas tables.


Distributed objects need a way to communicate. Links establishes active references to lanes of Web Agents, transparently streaming bi-directional state changes to keep all parts of an application in sync, without the overhead of queries or remote procedure calls.


Communication only works if all parties understands one another. Swim natively speaks a universal, structured data language, called Recon. A superset of JSON, XML, Protocol Buffers, and more, Recon naturally translates into many tongues.

You can’t perform that action at this time.