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

Typed, disposable worker and messaging primitives.

## Core

| Name                                                                                      | Description                                                                   |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel)     | Typed, disposable BroadcastChannel.                                           |
| [MessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessageChannel)         | Typed, disposable MessageChannel.                                             |
| [MessagePort](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessagePort)               | Typed, disposable MessagePort.                                                |
| [SharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorker)             | Typed, disposable SharedWorker.                                               |
| [SharedWorkerSelf](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf)     | Typed `self` for code running inside a shared worker.                         |
| [Worker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/Worker)                         | Typed, disposable Worker.                                                     |
| [WorkerSelf](https://evolu.dev/docs/api-reference/common/Worker/interfaces/WorkerSelf)                 | Typed `self` for code running inside a dedicated worker.                      |
| [NativeMessagePort](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/NativeMessagePort) | Opaque type for platform-specific native MessagePort.                         |
| [Transferable](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/Transferable)           | Objects whose ownership can be transferred between threads via `postMessage`. |
| [WorkerDeps](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/WorkerDeps)               | Common dependencies for worker entry points.                                  |

## Construction

| Name                                                                                                    | Description                                                                                                                  |
| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [CreateBroadcastChannelDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateBroadcastChannelDep) | Dependency wrapper for [CreateBroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateBroadcastChannel).  |
| [CreateMessageChannelDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep)     | Dependency wrapper for [CreateMessageChannel](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessageChannel).      |
| [CreateMessagePortDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep)           | Dependency wrapper for [CreateMessagePort](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessagePort).            |
| [CreateBroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateBroadcastChannel)     | Factory function to create a [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel).          |
| [CreateMessageChannel](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessageChannel)         | Factory function to create a [MessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessageChannel).              |
| [CreateMessagePort](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessagePort)               | Factory function to create a [MessagePort](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessagePort) from a native port. |
| [createBroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/variables/createBroadcastChannel)        | Creates an in-memory [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel).                  |
| [createMessageChannel](https://evolu.dev/docs/api-reference/common/Worker/variables/createMessageChannel)            | Creates an in-memory [MessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessageChannel).                      |
| [createMessagePort](https://evolu.dev/docs/api-reference/common/Worker/variables/createMessagePort)                  | Creates an in-memory [MessagePort](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessagePort) from a native token.        |
| [createSharedWorker](https://evolu.dev/docs/api-reference/common/Worker/functions/createSharedWorker)                | Creates an in-memory [SharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorker).                          |
| [createWorker](https://evolu.dev/docs/api-reference/common/Worker/functions/createWorker)                            | Creates an in-memory [Worker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/Worker).                                      |

## Testing

| Name                                                                                                     | Description                                                                                                                    |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [TestBroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestBroadcastChannel)            | [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel) with disposal tracking for testing.      |
| [TestMessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestMessageChannel)                | [MessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessageChannel) with disposal tracking for testing.          |
| [TestSharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestSharedWorker)                    | Test [SharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorker) with direct access to `self` and `connect`. |
| [TestWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestWorker)                                | Test [Worker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/Worker) with access to its paired worker-side `self`.           |
| [testCreateMessagePort](https://evolu.dev/docs/api-reference/common/Worker/variables/testCreateMessagePort)           | Creates an in-memory [CreateMessagePort](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessagePort) for testing.    |
| [testCreateBroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/functions/testCreateBroadcastChannel) | Creates an in-memory [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel) for testing.        |
| [testCreateMessageChannel](https://evolu.dev/docs/api-reference/common/Worker/functions/testCreateMessageChannel)     | Creates an in-memory [MessageChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessageChannel) for testing.            |
| [testCreateSharedWorker](https://evolu.dev/docs/api-reference/common/Worker/functions/testCreateSharedWorker)         | Creates a connected [TestSharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestSharedWorker) for testing.         |
| [testCreateWorker](https://evolu.dev/docs/api-reference/common/Worker/functions/testCreateWorker)                     | Creates a connected [TestWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/TestWorker) for testing.                     |
| [testWaitForWorkerMessage](https://evolu.dev/docs/api-reference/common/Worker/functions/testWaitForWorkerMessage)     | Waits until scheduled in-memory worker message delivery becomes idle.                                                          |