#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

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io