Inputs and Outputs
Input reader abstracts over a non-blocking token input stream, with single
token lookahead. An
Output writer abstracts over a non-blocking token output
Parsers and Writers
Parser incrementally reads from a sequence of
Input chunks to produce a
parsed result. A
Writer incrementally writes to a sequence of
Binary factory has methods to create
Input readers that read bytes out
of byte buffers, and methods to create
Output writers that write bytes into
Unicode factory has methods to create
Input readers that read Unicode
code points out of strings, and methods to create
Output writers that write
Unicode code points into strings.
Utf8 factory has methods to create
Input readers that decode Unicode
code points out of UTF-8 encoded byte buffers, and methods to create
writers that encode Unicode code points into UTF-8 encoded byte buffers.
Base10 factory has methods to create
Parsers that incrementally parse
decimal formatted integers, and methods to create
Writers that incrementally
write decimal formatted integers.
Base16 factory has methods to create
Parsers that incrementally decode
hexadecimal encoded text input into byte buffers, and methods to create
Writers that incrementally encode byte buffers to hexadecimal encoded text
Base64 factory has methods to create
Parsers that incrementally decode
base-64 encoded text input into byte buffers, and methods to create
that incrementally encode byte buffers to base-64 encoded text output.
Display interface provides a standard way for implementing classes to
directly output human readable display strings. Similarly, the
interface provides a standard way for implementing classes to directly output
developer readable debug strings.
Format provides extension methods to output display and debug strings for all
OutputStyle provides helper
functions to conditionally emit ASCII escape codes to stylize text for console
Tag abstracts over a source input location. A
Mark describes a source
input position, and a
Span describes a source input range. A
attaches an informational message to a source input location, and supports
displaying the diagnostic as an annotated snippet of the relevant source input.
For an npm-managed project,
npm install @swim/codec to make it a dependency.
TypeScript sources will be installed into
node_modules/@swim/codec/lib/main. And a pre-built UMD script can
be found in
Browser applications can load
swim-core.js, which comes bundled with the
swim/codec library, directly from the swimOS CDN.
<!-- Development --> <script src="https://cdn.swimos.org/js/latest/swim-core.js"></script> <!-- Production --> <script src="https://cdn.swimos.org/js/latest/swim-core.min.js"></script>
Alternatively, the standalone
swim-system.js script may be loaded
from the swimOS CDN, which bundles @swim/codec together with all other
<!-- Development --> <script src="https://cdn.swimos.org/js/latest/swim-system.js"></script> <!-- Production --> <script src="https://cdn.swimos.org/js/latest/swim-system.min.js"></script>
@swim/codec can be imported as an ES6 module from TypeScript and other ES6-compatible environments.
import * as codec from "@swim/codec";
@swim/codec can also be used as a CommonJS module in Node.js applications.
var codec = require("@swim/codec");
When loaded by a web browser, the
swim-core.js script adds all
@swim/codec library exports to the global
swim-system.js script also adds all @swim/codec library exports
to the global
swim namespace, making it a drop-in replacement for
swim-core.js when additional @swim/system libraries are needed.