> ## Documentation Index
> Fetch the complete documentation index at: https://gomoqt.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TypeScript / JavaScript

## Building Web Applications

A significant feature of MoQ is that it is available on web browsers using WebTransport. This allows for real-time media streaming directly in the browser without the need for additional plugins or software.
We provide a JavaScript client library to facilitate this integration.

### Prerequisites

* A runtime with WebTransport support — a modern browser, or [Deno](https://deno.com/)
* A package manager that can install from [JSR](https://jsr.io/): `deno`, `npm`, `pnpm`, `yarn`, or `bun`

<Steps>
  <Step title="Install module">
    The client library is published to JSR as [`@qumo/moq`](https://jsr.io/@qumo/moq).

    <Tabs>
      <Tab title="Deno">
        ```bash theme={null}
        deno add jsr:@qumo/moq
        ```
      </Tab>

      <Tab title="npm">
        ```bash theme={null}
        npx jsr add @qumo/moq
        ```
      </Tab>

      <Tab title="pnpm">
        ```bash theme={null}
        pnpm dlx jsr add @qumo/moq
        ```
      </Tab>

      <Tab title="yarn">
        ```bash theme={null}
        yarn dlx jsr add @qumo/moq
        ```
      </Tab>

      <Tab title="bun">
        ```bash theme={null}
        bunx jsr add @qumo/moq
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Importing modules">
    ```ts theme={null}
    import { connect } from "@qumo/moq";

    const session = await connect("https://localhost:4443/moq");

    // subscribe resolves to a [value, error] tuple — always check the error
    // before using the reader.
    const [reader, err] = await session.subscribe("/broadcast", "video");
    if (err !== undefined) {
    	throw err;
    }

    // reader is a TrackReader here.
    ```

    | Entrypoint | Description |
    | :- | :- |
    | `@qumo/moq` | Core MoQ client — sessions, tracks, groups, and frames. |
    | `@qumo/moq/msf` | MSF streaming format — catalogs, deltas, and timelines. |
  </Step>
</Steps>

<Note>
  **Note: Browser compatibility**

  If your browser does not support WebTransport, `moqt` does not work.
  Check the [Can I Use](https://caniuse.com/webtransport) for the latest compatibility information.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.