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

## Modules

| Module                                                       | Description                                                               |
| ------------------------------------------------------------ | ------------------------------------------------------------------------- |
| [TestBundle](https://evolu.dev/docs/api-reference/nodejs/TestBundle) | Node.js utilities for testing production bundles.                         |
| [TestJSDoc](https://evolu.dev/docs/api-reference/nodejs/TestJSDoc)   | Utilities for testing TypeScript examples embedded in JSDoc and Markdown. |

## Interfaces

| Interface                                                                                                      | Description                                                                                                                                                          |
| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AvailableParallelismDep](https://evolu.dev/docs/api-reference/nodejs/interfaces/AvailableParallelismDep)                   | Dependency wrapper for [availableParallelism](https://evolu.dev/docs/api-reference/nodejs/variables/availableParallelism).                                                        |
| [NodeJsRelayConfig](https://evolu.dev/docs/api-reference/nodejs/interfaces/NodeJsRelayConfig)                               | -                                                                                                                                                                    |
| [NodejsTime](https://evolu.dev/docs/api-reference/nodejs/interfaces/NodejsTime)                                             | [Time](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time) with Node.js high-resolution nanosecond readings.                                                        |
| [RunMainOptions](https://evolu.dev/docs/api-reference/nodejs/interfaces/RunMainOptions)                                     | Options for [runMain](https://evolu.dev/docs/api-reference/nodejs/functions/runMain).                                                                                             |
| [SpawnDep](https://evolu.dev/docs/api-reference/nodejs/interfaces/SpawnDep)                                                 | Dependency wrapper for [spawn](https://evolu.dev/docs/api-reference/nodejs/variables/spawn).                                                                                      |
| [SpawnError](https://evolu.dev/docs/api-reference/nodejs/interfaces/SpawnError)                                             | Failure to start a command or an unsuccessful command exit.                                                                                                          |
| [TestSetupWebSocketUpgradeRequest](https://evolu.dev/docs/api-reference/nodejs/interfaces/TestSetupWebSocketUpgradeRequest) | A raw WebSocket upgrade request prepared for tests by [testSetupWebSocketUpgradeRequest](https://evolu.dev/docs/api-reference/nodejs/functions/testSetupWebSocketUpgradeRequest). |

## Type Aliases

| Type Alias                                                                               | Description                                                                                          |
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| [AvailableParallelism](https://evolu.dev/docs/api-reference/nodejs/type-aliases/AvailableParallelism) | Returns the recommended amount of parallelism available to this process.                             |
| [HrDuration](https://evolu.dev/docs/api-reference/nodejs/type-aliases/HrDuration)                     | Elapsed nanoseconds measured using [HrTime](https://evolu.dev/docs/api-reference/nodejs/type-aliases/HrTime).     |
| [HrTime](https://evolu.dev/docs/api-reference/nodejs/type-aliases/HrTime)                             | Monotonic high-resolution timestamp in nanoseconds.                                                  |
| [NodeSignal](https://evolu.dev/docs/api-reference/nodejs/type-aliases/NodeSignal)                     | A Node.js termination signal handled by [runMain](https://evolu.dev/docs/api-reference/nodejs/functions/runMain). |
| [RelayDeps](https://evolu.dev/docs/api-reference/nodejs/type-aliases/RelayDeps)                       | -                                                                                                    |
| [RunMainMode](https://evolu.dev/docs/api-reference/nodejs/type-aliases/RunMainMode)                   | Process lifecycle behavior for [runMain](https://evolu.dev/docs/api-reference/nodejs/functions/runMain).          |
| [Spawn](https://evolu.dev/docs/api-reference/nodejs/type-aliases/Spawn)                               | Runs a command with inherited stdio.                                                                 |

## Variables

| Variable                                                                                      | Description                                                                                                                      |
| --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| [availableParallelism](https://evolu.dev/docs/api-reference/nodejs/variables/availableParallelism)         | Returns the recommended amount of parallelism available to this process.                                                         |
| [createBetterSqliteDriver](https://evolu.dev/docs/api-reference/nodejs/variables/createBetterSqliteDriver) | -                                                                                                                                |
| [createBroadcastChannel](https://evolu.dev/docs/api-reference/nodejs/variables/createBroadcastChannel)     | Creates a [BroadcastChannel](https://evolu.dev/docs/api-reference/common/Worker/interfaces/BroadcastChannel) from a Node.js BroadcastChannel. |
| [spawn](https://evolu.dev/docs/api-reference/nodejs/variables/spawn)                                       | Runs a command with inherited stdio and aborts it with the current Run.                                                          |

## Functions

| Function                                                                                                      | Description                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [createNodejsTime](https://evolu.dev/docs/api-reference/nodejs/functions/createNodejsTime)                                 | Creates a [NodejsTime](https://evolu.dev/docs/api-reference/nodejs/interfaces/NodejsTime) using `process.hrtime.bigint()`.                |
| [createRelay](https://evolu.dev/docs/api-reference/nodejs/functions/createRelay)                                           | Creates an Evolu Relay server resource using Node.js.                                                                        |
| [createRelayDeps](https://evolu.dev/docs/api-reference/nodejs/functions/createRelayDeps)                                   | Dependencies for [createRelay](https://evolu.dev/docs/api-reference/nodejs/functions/createRelay) using better-sqlite3.                   |
| [createTimingSafeEqual](https://evolu.dev/docs/api-reference/nodejs/functions/createTimingSafeEqual)                       | Creates the Node.js implementation of [TimingSafeEqual](https://evolu.dev/docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual). |
| [hrDurationBetween](https://evolu.dev/docs/api-reference/nodejs/functions/hrDurationBetween)                               | Returns the elapsed nanoseconds between two high-resolution timestamps.                                                      |
| [hrDurationToMillis](https://evolu.dev/docs/api-reference/nodejs/functions/hrDurationToMillis)                             | Converts a high-resolution duration to the nearest millisecond.                                                              |
| [millisToHrDuration](https://evolu.dev/docs/api-reference/nodejs/functions/millisToHrDuration)                             | Converts milliseconds to an exact high-resolution duration.                                                                  |
| [testSendWebSocketUpgradeRequest](https://evolu.dev/docs/api-reference/nodejs/functions/testSendWebSocketUpgradeRequest)   | Sends a raw WebSocket upgrade request and resolves with the rejection response.                                              |
| [testSetupWebSocketUpgradeRequest](https://evolu.dev/docs/api-reference/nodejs/functions/testSetupWebSocketUpgradeRequest) | Creates a raw WebSocket upgrade request test setup for tests that need manual request control.                               |

## Node.js Task

| Name                                                                                     | Description                                          |
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [NodeSignalAbortReason](https://evolu.dev/docs/api-reference/nodejs/interfaces/NodeSignalAbortReason) | An abort requested by a Node.js termination signal.  |
| [runMain](https://evolu.dev/docs/api-reference/nodejs/functions/runMain)                              | Runs the main Task as the Node.js program lifecycle. |