@swim/mesh implements a multiplexed streaming WARP client that runs in both
Node.js and web browsers. @swim/mesh can be used in concert with the
@swim/ui
user interface toolkits to build massively real-time streaming applications.
@swim/mesh is part of the broader
@swim/system framework.
The @swim/mesh umbrella package depends on, and re-exports, the following
component libraries:
@swim/warp
(npm,
doc) –
WebSocket protocol for dynamically multiplexing large numbers of
bidirectional links to streaming API endpoints, 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.
@swim/mesh builds on the @swim/core
framework; it has no additional dependencies when run in a web browser,
and depends only on a WebSocket implementation when run in Node.js.
For an npm-managed project, npm install @swim/mesh to make it a dependency.
TypeScript sources will be installed into node_modules/@swim/mesh/main.
Transpiled JavaScript and TypeScript definition files install into
node_modules/@swim/mesh/lib/main. And a pre-built UMD script, which
bundles all @swim/mesh component libraries, can be found in
node_modules/@swim/mesh/dist/main/swim-mesh.js.
Browser applications can load swim-mesh.js, along with its swim-core.js
dependency, from the SwimOS CDN.
<!-- Development --><scriptsrc="https://cdn.swimos.org/js/latest/swim-core.js"></script><scriptsrc="https://cdn.swimos.org/js/latest/swim-mesh.js"></script><!-- Production --><scriptsrc="https://cdn.swimos.org/js/latest/swim-core.min.js"></script><scriptsrc="https://cdn.swimos.org/js/latest/swim-mesh.min.js"></script>
Alternatively, the standalone swim-system.js script may be loaded
from the SwimOS CDN, which bundles @swim/mesh together with all other
@swim/system
frameworks.
<!-- 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/mesh can be imported as an ES6 module from TypeScript and other
ES6-compatible environments. All component libraries are re-exported by
the umbrella @swim/mesh module.
When loaded by a web browser, the swim-mesh.js script adds all component
library exports to the global swim namespace. The swim-mesh.js script
requires that swim-core.js has already been loaded.
The swim-system.js script also adds all @swim/mesh component library
exports to the global swim namespace, making it a drop-in replacement
for swim-mesh.js when additional @swim/system frameworks are needed.
@swim/mesh
@swim/mesh implements a multiplexed streaming WARP client that runs in both Node.js and web browsers. @swim/mesh can be used in concert with the @swim/ui user interface toolkits to build massively real-time streaming applications. @swim/mesh is part of the broader @swim/system framework.
Framework
The @swim/mesh umbrella package depends on, and re-exports, the following component libraries:
@swim/mesh builds on the @swim/core framework; it has no additional dependencies when run in a web browser, and depends only on a WebSocket implementation when run in Node.js.
Installation
npm
For an npm-managed project,
npm install @swim/mesh
to make it a dependency. TypeScript sources will be installed intonode_modules/@swim/mesh/main
. Transpiled JavaScript and TypeScript definition files install intonode_modules/@swim/mesh/lib/main
. And a pre-built UMD script, which bundles all @swim/mesh component libraries, can be found innode_modules/@swim/mesh/dist/main/swim-mesh.js
.Browser
Browser applications can load
swim-mesh.js
, along with itsswim-core.js
dependency, from the SwimOS CDN.Alternatively, the standalone
swim-system.js
script may be loaded from the SwimOS CDN, which bundles @swim/mesh together with all other @swim/system frameworks.Usage
ES6/TypeScript
@swim/mesh can be imported as an ES6 module from TypeScript and other ES6-compatible environments. All component libraries are re-exported by the umbrella
@swim/mesh
module.CommonJS/Node.js
@swim/mesh can also be used as a CommonJS module in Node.js applications. All component libraries are re-exported by the umbrella
@swim/mesh
module.Browser
When loaded by a web browser, the
swim-mesh.js
script adds all component library exports to the globalswim
namespace. Theswim-mesh.js
script requires thatswim-core.js
has already been loaded.The
swim-system.js
script also adds all @swim/mesh component library exports to the globalswim
namespace, making it a drop-in replacement forswim-mesh.js
when additional @swim/system frameworks are needed.