| Server IP : 159.203.156.69 / Your IP : 216.73.216.37 Web Server : nginx/1.24.0 System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/tanviranik.com/node_modules/turbo-stream/ |
Upload File : |
# Turbo Stream <br> [](https://bundlejs.com/?q=turbo-stream)
Streaming data transport format that supports:
- Streaming promises
- `undefined`, `null`, `Boolean`, `String`
- `Bigint`, `Set`, `Map`, `URL`, `RegExp`, `Error`
- `Number`, including `+Infinity`, `-Infinity` and `NaN`, `-0`
- Circular references, repeated references
- `Date`, including invalid dates
- `Symbol` (`Symbol.from()`)
- Objects with `toJSON` methods
- Iterables, AsyncIterable
- `Buffer`, `ArrayBuffer`, `DataView`, TypedArrays
- `File`, `Blob`, `FormData`, `ReadableStream`
Uses `ReadableStream` as the transport interface for encoding and decoding.
Decode runtime size: [](https://bundlejs.com/?q=turbo-stream&treeshake=%5B%7B+decode+%7D%5D)
## Installation
```bash
npm install turbo-stream
```
## Usage
```js
import { decode, encode } from "turbo-stream";
const encodedStream = encode(Promise.resolve(42));
const decoded = await decode(encodedStream);
console.log(decoded); // 42
```
## Benchmarks
Run them yourself with `pnpm bench`
```
• realistic payload
------------------------------------------- -------------------------------
JSON 2.80 µs/iter 2.71 µs █▆
(2.59 µs … 5.61 µs) 5.55 µs ██
( 2.91 kb … 2.91 kb) 2.91 kb ██▁▂▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▂
turbo encode 16.71 µs/iter 16.47 µs █
(16.04 µs … 19.47 µs) 18.38 µs ███
( 2.80 kb … 2.81 kb) 2.80 kb ██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█
turbo full 35.30 µs/iter 36.33 µs █
(31.38 µs … 202.79 µs) 52.50 µs █▃ ▄
( 2.47 kb … 454.32 kb) 104.44 kb ▂██▃▅█▂▂▂▂▁▁▁▁▁▁▁▁▁▁▁
┌ ┐
┬ ╷
JSON │──┤
┴ ╵
┌┬╷
turbo encode ││┤
└┴╵
╷┌─┬┐ ╷
turbo full ├┤ │├──────────────┤
╵└─┴┘ ╵
└ ┘
2.59 µs 27.55 µs 52.50 µs
summary
turbo encode
5.97x slower than JSON
2.11x faster than turbo full
```
## Legacy
Shout out to Rich Harris and his https://github.com/rich-harris/devalue project. Devalue has heavily influenced this project and portions of the original code was directly lifted from it. I highly recommend checking it out if you need something more cusomizable or without streaming support. This new version has been re-written from the ground up and no longer resembles devalue.