# IMQ.create() method · @imqueue/core

Source: https://imqueue.org/api/core/latest/core.imq.create/
Published: 2026-08-04
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/core 3.3.2 — generated reference, not hand-written

Instantiates the queue adapter matching the given options and returns it ready to be started.

The adapter is chosen from `options.vendor`, of which only `'Redis'` is supported. When either `options.cluster` or `options.clusterManagers` is present, the clustered adapter is returned instead of the single-server one.

**Signature:**

```typescript
static create(name: string, options?: Partial<IMQOptions>, mode?: IMQMode): IMessageQueue;
```

## Parameters


| Parameter | Type | Description |
| --- | --- | --- |
| name | string | queue name; the underlying Redis key becomes `<prefix>:<name>` |
| options | Partial<[IMQOptions](https://imqueue.org/api/core/latest/core.imqoptions/)> | _(Optional)_ queue options; anything omitted falls back to [DEFAULT\_IMQ\_OPTIONS](https://imqueue.org/api/core/latest/core.default_imq_options/) |
| mode | [IMQMode](https://imqueue.org/api/core/latest/core.imqmode/) | _(Optional)_ whether the queue produces, consumes, or both; defaults to [IMQMode.BOTH](https://imqueue.org/api/core/latest/core.imqmode/) |


**Returns:**

[IMessageQueue](https://imqueue.org/api/core/latest/core.imessagequeue/)

an unstarted queue instance — a [ClusteredRedisQueue](https://imqueue.org/api/core/latest/core.clusteredredisqueue/) when cluster options were supplied, otherwise a [RedisQueue](https://imqueue.org/api/core/latest/core.redisqueue/)

## Exceptions

TypeError when `options.vendor` names an unknown adapter

## Remarks

`options.vendor` is honoured only here. Constructing a queue class directly ignores it, because [DEFAULT\_IMQ\_OPTIONS](https://imqueue.org/api/core/latest/core.default_imq_options/) carries no `vendor` key.

