README

#mizchi/js/web/streams

Streams API for processing data incrementally.

#Installation

Add to your moon.pkg.json:

{ "import": [ "mizchi/js", "mizchi/js/web/streams" ] }

#Overview

Provides bindings for the Streams API: ReadableStream, WritableStream, and TransformStream.

#Usage Example

fn main {
// Create a readable stream
let readable = @streams.ReadableStream::new()

// Get a reader
let reader = readable.get_reader()

// Create a writable stream
let writable = @streams.WritableStream::new()

// Get a writer
let writer = writable.get_writer()

// Create a transform stream
let transform = @streams.TransformStream::new()

// Pipe streams
// readable.pipe_to(writable)
}

#Available Types

  • ReadableStream - Stream of data to read
  • WritableStream - Stream to write data to
  • TransformStream - Transform data in a stream
  • Compression/Decompression - gzip, deflate streams

#Reference

#
CompressionStream

pub(all) struct CompressionStream {
readable : ReadableStream
writable : WritableStream
}

CompressionStream is a TransformStream that compresses data using gzip, deflate, or deflate-raw https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream

#
CompressionStream::as_any

#
CompressionStream::new

fn CompressionStream::new(format : String) -> CompressionStream

Create a new CompressionStream with the specified format

Supported formats:
  • "gzip" - GZIP compression
  • "deflate" - DEFLATE compression (with zlib wrapper)
  • "deflate-raw" - DEFLATE compression (without wrapper)

Example:
let _compressor = CompressionStream::new("gzip")

#
DecompressionStream

pub(all) struct DecompressionStream {
readable : ReadableStream
writable : WritableStream
}

DecompressionStream is a TransformStream that decompresses data using gzip, deflate, or deflate-raw https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream

#
DecompressionStream::as_any

#
DecompressionStream::new

fn DecompressionStream::new(format : String) -> DecompressionStream

Create a new DecompressionStream with the specified format

Supported formats:
  • "gzip" - GZIP decompression
  • "deflate" - DEFLATE decompression (with zlib wrapper)
  • "deflate-raw" - DEFLATE decompression (without wrapper)

Example:
let _decompressor = DecompressionStream::new("gzip")

#
ReadableStream

#external
pub type ReadableStream

ReadableStream represents a readable stream of byte data https://developer.mozilla.org/ja/docs/Web/API/ReadableStream

#
ReadableStream::as_any

#
ReadableStream::cancel

async fn ReadableStream::cancel(self : ReadableStream, reason? :
Any
) -> Unit

Cancel the stream

#
ReadableStream::getReader

#alias(get_reader)
fn ReadableStream::getReader(self : ReadableStream) -> ReadableStreamDefaultReader

Get a reader for this stream

#
ReadableStream::locked

fn ReadableStream::locked(self : ReadableStream) -> Bool

Check if the stream is locked

#
ReadableStream::new

fn ReadableStream::new(underlying_source :
Any
) -> ReadableStream

Create a new ReadableStream with an underlying source

#
ReadableStream::pipeThrough

#alias(pipe_through)
fn ReadableStream::pipeThrough(self : ReadableStream, transform :
Any
, options? :
Any
) -> ReadableStream

Pipe through a transform stream

#
ReadableStream::pipeTo

#alias(pipe_to)
async fn ReadableStream::pipeTo(self : ReadableStream, destination : WritableStream, options? :
Any
) -> Unit

Pipe this stream to a WritableStream

#
ReadableStream::tee

Tee this stream into two branches

#
ReadableStreamDefaultReader

#external
pub type ReadableStreamDefaultReader

ReadableStreamDefaultReader represents a default reader for reading from a ReadableStream

#
ReadableStreamDefaultReader::as_any

#
ReadableStreamDefaultReader::cancel

Cancel the stream

#
ReadableStreamDefaultReader::closed

Get the closed promise

#
ReadableStreamDefaultReader::read

Read a chunk from the stream

#
ReadableStreamDefaultReader::releaseLock

#alias(release_lock)
fn ReadableStreamDefaultReader::releaseLock(self : ReadableStreamDefaultReader) -> Unit

Release the reader's lock on the stream

#
TransformStream

#external
pub type TransformStream

TransformStream represents a transform stream for piping data through a transformation

#
TransformStream::as_any

#
TransformStream::new

Create a new TransformStream with a transformer

#
TransformStream::new_identity

#alias(newIdentity)
fn TransformStream::new_identity() -> TransformStream

Create a new identity TransformStream (passes data through unmodified)

#
TransformStream::readable

Get the readable side of the transform stream

#
TransformStream::writable

Get the writable side of the transform stream

#
WritableStream

#external
pub type WritableStream

WritableStream represents a writable stream

#
WritableStream::abort

async fn WritableStream::abort(self : WritableStream, reason? :
Any
) -> Unit

Abort the stream

#
WritableStream::as_any

#
WritableStream::close

async fn WritableStream::close(self : WritableStream) -> Unit

Close the stream

#
WritableStream::getWriter

#alias(get_writer)
fn WritableStream::getWriter(self : WritableStream) -> WritableStreamDefaultWriter

Get a writer for this stream

#
WritableStream::locked

fn WritableStream::locked(self : WritableStream) -> Bool

Check if the stream is locked

#
WritableStream::new

Create a new WritableStream with an underlying sink

#
WritableStreamDefaultWriter

#external
pub type WritableStreamDefaultWriter

WritableStreamDefaultWriter represents a default writer for writing to a WritableStream

#
WritableStreamDefaultWriter::abort

Abort the writer

#
WritableStreamDefaultWriter::as_any

#
WritableStreamDefaultWriter::close

Close the writer

#
WritableStreamDefaultWriter::closed

Get the closed promise

#
WritableStreamDefaultWriter::desiredSize

Get the desired size

#
WritableStreamDefaultWriter::ready

Get the ready promise

#
WritableStreamDefaultWriter::releaseLock

#alias(release_lock)
fn WritableStreamDefaultWriter::releaseLock(self : WritableStreamDefaultWriter) -> Unit

Release the writer's lock on the stream

#
WritableStreamDefaultWriter::write

Write a chunk to the stream