2.0.21 • Published 5 months ago

nats-memory-server v2.0.21

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

NATS In-Memory Server

GitHub license GitHub issues GitHub stars

Table of Contents

  1. Description
  2. Requirements
  3. Installation
  4. Configuration
  5. NATS Jetstream
  6. Example
  7. Contributing

Description

nats-memory-server is a Node.js package that provides an in-memory NATS server for testing and other purposes. It allows you to quickly set up and tear down a NATS server instance within your Node.js applications, making it easier to write tests and perform other operations that require a NATS server.

Requirements

  • Go (Optional. Only if you build from source) (version 1.19 or later)

Installation

You can install nats-memory-server using npm or yarn:

npm install nats-memory-server

or

yarn add nats-memory-server

Configuration

Default configuration is:

  • download: true
  • downloadDir: 'node_modules/.cache/nats-memory-server'
  • version: 'v2.9.16'
  • buildFromSource: false
  • binPath: 'node_modules/.cache/nats-memory-server/nats-server'

For configuration, you can create one of the files:

  • nats-memory-server.json
  • nats-memory-server.js
  • nats-memory-server.ts

nats-memory-server.json

{
  "download": true,
  "downloadDir": "node_modules/.cache/nats-memory-server",
  "version": "v2.9.16",
  "buildFromSource": false,
  "binPath": "node_modules/.cache/nats-memory-server/nats-server"
}

nats-memory-server.js

/**
 * @type {import('nats-memory-server').NatsMemoryServerConfig}
 */
const config = {
  download: true,
  downloadDir: 'node_modules/.cache/nats-memory-server',
  version: 'v2.9.16',
  buildFromSource: false,
  binPath: 'node_modules/.cache/nats-memory-server/nats-server',
};

module.exports = config;

nats-memory-server.ts

import type { NatsMemoryServerConfig } from 'nats-memory-server';

const config: NatsMemoryServerConfig = {
  download: true,
  downloadDir: 'node_modules/.cache/nats-memory-server',
  version: 'v2.9.16',
  buildFromSource: false,
  binPath: 'node_modules/.cache/nats-memory-server/nats-server',
};

export default config;

Configuration in package.json

You can declare the configurations in package.json in the natsMemoryServer field

{
  "natsMemoryServer": {
    "download": true,
    "downloadDir": "node_modules/.cache/nats-memory-server",
    "version": "v2.9.16",
    "buildFromSource": false,
    "binPath": "node_modules/.cache/nats-memory-server/nats-server"
  },
}

NATS Jetstream

You may use a method in the builder setArgs to pass the parameters

await NatsServerBuilder
      .create()
      .setArgs([`--jetstream`, `--store_dir`, os.tmpdir()])
      .build()
      .start();

Or you can pass it through the constructor

new NatsServer({
  ...DEFAULT_NATS_SERVER_OPTIONS,
  args: [`--jetstream`, `--store_dir`, os.tmpdir()],
});

Example

example.js

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please feel free to open an issue or submit a pull request on the GitHub repository.

When contributing, please ensure to follow the code of conduct.

2.0.19

5 months ago

2.0.20

5 months ago

2.0.21

5 months ago

2.0.15

1 year ago

2.0.3

1 year ago

2.0.16

12 months ago

2.0.2

1 year ago

2.0.13

1 year ago

2.0.5

1 year ago

2.0.14

1 year ago

2.0.4

1 year ago

2.0.11

1 year ago

2.0.7

1 year ago

2.0.12

1 year ago

2.0.6

1 year ago

2.0.9

1 year ago

2.0.10

1 year ago

2.0.8

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

2.0.17

12 months ago

2.0.18

12 months ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.1.0

2 years ago