[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Worker](https://evolu.dev/docs/api-reference/common/Worker) › SharedWorker

Defined in: [packages/common/src/Worker.ts:30](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Worker.ts#L30)

Platform-agnostic SharedWorker.

A shared worker is shared across multiple clients (tabs, windows, iframes)
and provides a port for bidirectional communication with each client.

## See

https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker

## Extends

- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management)

## Extended by

- [`TestSharedWorker`](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestSharedWorker)

## Methods

<a id="dispose"></a>

### \[dispose\]()

```ts
dispose: void;
```

Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts:36

#### Inherited from

```ts
Disposable.[dispose]
```

## Properties

<a id="port"></a>

### port

```ts
readonly port: MessagePort<Input, Output>;
```

Defined in: [packages/common/src/Worker.ts:32](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Worker.ts#L32)

Port for communicating with the shared worker.