# WebAssembly

The SurrealDB SDK for JavaScript using the WebAssembly engine.

The `@surrealdb/wasm` package is a plugin for the [JavaScript SDK](/docs/reference/javascript/installation.md) that runs SurrealDB as an embedded database within a browser environment. It supports in-memory databases and persistent storage via IndexedDB, and can optionally run inside a Web Worker.

> [!IMPORTANT]
> This package works with ES modules (`import`), not CommonJS (`require`).

## Installation

First, [install the JavaScript SDK](/docs/reference/javascript/installation.md) if you haven't already. Then add the WASM engine:

**npm**

```bash
npm install --save @surrealdb/wasm
```

**yarn**

```bash
yarn add @surrealdb/wasm
```

**pnpm**

```bash
pnpm install @surrealdb/wasm
```

## Quick start

```ts
import { Surreal, createRemoteEngines } from 'surrealdb';
import { createWasmEngines } from '@surrealdb/wasm';

const db = new Surreal({
    engines: {
        ...createRemoteEngines(),
        ...createWasmEngines(),
    },
});

await db.connect('mem://');
```

## Learn more

- [Connecting to SurrealDB](/docs/reference/javascript/concepts/connecting-to-surrealdb.md) for engine registration, embedded protocols, and connection options
- [`@surrealdb/wasm` on npm](https://npmjs.com/package/@surrealdb/wasm)
