---
title: "parseMultipartStream"
source: "https://github.com/remix-run/remix/blob/8905f3943706e1f53696ab83e70a84873cabfc90/packages/multipart-parser/src/lib/future/multipart.ts#L40"
---

# parseMultipartStream

## Summary

Parse a `multipart/*` message stream and yield each part as a [`MultipartPart`](/multipart-parser/future/class/MultipartPart/) as soon as
its headers arrive. Part content is streamed from the message as you read it, never buffered.

Parts are read in order, so read each part's content before continuing to the next part. When
you continue, the parser waits for a read you started to finish and discards any content you
didn't read.

Note: This is a low-level API that requires manual handling of the content and boundary.
If you're building a web server, consider using
import('./multipart-request.ts').parseMultipartRequest instead.

## Signature

```ts
function parseMultipartStream(
  stream: ReadableStream<Uint8Array<ArrayBufferLike>>,
  options: ParseMultipartOptions,
): AsyncGenerator<MultipartPart, void, unknown>

```

## Parameters

### `stream`

A stream containing multipart data as a `ReadableStream<Uint8Array>`

### `options`

Options for the parser

## Returns

An async generator that yields [`MultipartPart`](/multipart-parser/future/class/MultipartPart/) objects