The @swim/system umbrella framework provides a standalone set of frameworks
for building massively real-time streaming WARP client applications.
@swim/system incorporates the
@swim/core
foundation framework, and the
@swim/mesh
multiplexed streaming WARP client framework.
The Swim System umbrella framework has no external dependencies when run
in a web browser, and depends only on a WebSocket implementation when run in
Node.js. Swim System provides the following top-level libraries:
@swim/system
(npm,
doc) –
umbrella package that depends on, and re-exports, all Swim System
child frameworks and libraries.
The Swim Core framework provides a lightweight, portable, dependency-free,
and strongly typed baseline on which to build higher level libraries.
Swim Core consists of the following component libraries:
@swim/core
(npm,
doc) –
lightweight, portable, dependency-free foundation framework.
@swim/util
(npm,
doc) –
ordering, equality, and hashing; type conversions; iterators; builders;
maps; caches; and assertions.
@swim/codec
(npm,
doc) –
incremental I/O; functional parsers and writers; display, debug, and
diagnostic formatters; and Unicode and binary codecs.
@swim/collections
(npm,
doc) –
immutable, structure sharing collections, including B-trees and S-trees
(sequence trees).
@swim/constraint
(npm,
doc) –
incremental solver for systems of linear constraint equations.
@swim/structure
(npm,
doc) –
generic structured data model, with support for selectors, expressions,
and lambda functions. Used as a common abstract syntax tree for Recon,
JSON, XML, and other data languages.
@swim/streamlet
(npm,
doc) –
stateful, streaming component model for application componets that
continuously consume input state from streaming inlets, and continuously
produce output state on streaming outlets.
@swim/dataflow
(npm,
doc) –
compiler from @swim/structure expressions to live-updated data models.
@swim/recon
(npm,
doc) –
object notation with attributes, like if JSON and XML had a baby.
@swim/uri
(npm,
doc) –
rich object model for working with Uniform Resource Identifiers and URI
subcomponents, including an efficient and safe codec for parsing and
writing compliant URI strings.
@swim/math
(npm,
doc) –
mathematical and geometric structures and operators.
@swim/geo
(npm,
doc) –
geospatial coordinate, projection, and geometry types.
@swim/time
(npm,
doc) –
date-time, time zone, and time interval data types,
with strptime/strftime-style parsers and formatters.
The Swim Mesh framework implements a multiplexed streaming WARP client that
runs in both Node.js and web browsers. Swim Mesh consists of the following
component libraries:
@swim/mesh
(npm,
doc) –
multiplexed streaming WARP framework that runs in Node.js and web browsers.
@swim/warp
(npm,
doc) –
WebSocket protocol for dynamically multiplexing large numbers of bidirectional
links to streaming APIs, called lanes, of URI-addressed distributed objects,
called nodes, that run stateful distributed processes, called Web Agents.
@swim/client
(npm,
doc) –
streaming API client for linking to lanes of stateful Web Agents using the
WARP protocol, enabling massively real-time applications that continuously
synchronize all shared states with ping latency.
For an npm-managed project, npm install @swim/system to make it a dependency.
TypeScript sources will be installed into node_modules/@swim/system/main.
Transpiled JavaScript and TypeScript definition files install into
node_modules/@swim/system/lib/main. And a pre-built UMD script, which
bundles all @swim/system child frameworks, can be found in
node_modules/@swim/system/dist/main/swim-system.js.
Browser applications can load swim-system.js directly from the SwimOS CDN.
The swim-system.js bundle is self-contained; it supersedes swim-core.js,
and swim-mesh.js—those scripts need not be loaded when using swim-system.js.
<!-- Development --><scriptsrc="https://cdn.swimos.org/js/latest/swim-system.js"></script><!-- Production --><scriptsrc="https://cdn.swimos.org/js/latest/swim-system.min.js"></script>
@swim/system can be imported as an ES6 module from TypeScript and other
ES6-compatible environments. All child framework libraries are re-exported
by the umbrella @swim/system module.
@swim/system can also be used as a CommonJS module in Node.js applications.
All child framework libraries are re-exported by the umbrella @swim/system
module.
@swim/system
The @swim/system umbrella framework provides a standalone set of frameworks for building massively real-time streaming WARP client applications. @swim/system incorporates the @swim/core foundation framework, and the @swim/mesh multiplexed streaming WARP client framework.
Umbrella Framework
The Swim System umbrella framework has no external dependencies when run in a web browser, and depends only on a WebSocket implementation when run in Node.js. Swim System provides the following top-level libraries:
Swim Core Framework
The Swim Core framework provides a lightweight, portable, dependency-free, and strongly typed baseline on which to build higher level libraries. Swim Core consists of the following component libraries:
strptime
/strftime
-style parsers and formatters.Swim Mesh Framework
The Swim Mesh framework implements a multiplexed streaming WARP client that runs in both Node.js and web browsers. Swim Mesh consists of the following component libraries:
Installation
npm
For an npm-managed project,
npm install @swim/system
to make it a dependency. TypeScript sources will be installed intonode_modules/@swim/system/main
. Transpiled JavaScript and TypeScript definition files install intonode_modules/@swim/system/lib/main
. And a pre-built UMD script, which bundles all @swim/system child frameworks, can be found innode_modules/@swim/system/dist/main/swim-system.js
.Browser
Browser applications can load
swim-system.js
directly from the SwimOS CDN. Theswim-system.js
bundle is self-contained; it supersedesswim-core.js
, andswim-mesh.js
—those scripts need not be loaded when usingswim-system.js
.Usage
ES6/TypeScript
@swim/system can be imported as an ES6 module from TypeScript and other ES6-compatible environments. All child framework libraries are re-exported by the umbrella
@swim/system
module.CommonJS/Node.js
@swim/system can also be used as a CommonJS module in Node.js applications. All child framework libraries are re-exported by the umbrella
@swim/system
module.Browser
When loaded by a web browser, the
swim-system.js
script adds all child framework exports to the globalswim
namespace.