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

Typed, disposable worker and messaging primitives.

## Functions

| Function                                                                                                 | Description                                                                                                             |
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [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).                                 |
| [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.                                                   |

## Interfaces

| Interface                                                                                               | Description                                                                                                                    |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel)                   | Typed, disposable BroadcastChannel.                                                                                            |
| [CreateBroadcastChannelDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateBroadcastChannelDep) | -                                                                                                                              |
| [CreateMessageChannelDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep)     | -                                                                                                                              |
| [CreateMessagePortDep](https://evolu.dev/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep)           | -                                                                                                                              |
| [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.                                                                          |
| [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`.           |
| [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.                                                                       |

## Type Aliases

| Type Alias                                                                                          | Description                                                                                                                  |
| --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [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. |
| [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.                                                                                 |

## Variables

| Variable                                                                                         | Description                                                                                                                 |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| [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.       |
| [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. |