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

Platform-agnostic Worker abstractions.

## 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).                                |
| [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 long enough for multi-hop in-memory worker message delivery in tests.                                            |

## Interfaces

| Interface                                                                                           | Description                                                                                                                    |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [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)                   | Platform-agnostic MessageChannel.                                                                                              |
| [MessagePort](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessagePort)                         | Platform-agnostic MessagePort.                                                                                                 |
| [SharedWorker](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorker)                       | Platform-agnostic SharedWorker.                                                                                                |
| [SharedWorkerSelf](https://evolu.dev/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf)               | Typed `self` for code running inside a shared worker.                                                                          |
| [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)                                   | Platform-agnostic 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                                                                                                                  |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [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                                                                                                                 |
| ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| [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. |