2.0.21 • Published 4 months ago

nats-memory-server v2.0.21

Weekly downloads
-
License
MIT
Repository
github
Last release
4 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

4 months ago

2.0.21

4 months ago

2.0.15

12 months ago

2.0.3

12 months ago

2.0.16

11 months ago

2.0.2

1 year ago

2.0.13

12 months ago

2.0.5

12 months ago

2.0.14

12 months ago

2.0.4

12 months ago

2.0.11

12 months ago

2.0.7

12 months ago

2.0.12

12 months ago

2.0.6

12 months ago

2.0.9

12 months ago

2.0.10

12 months ago

2.0.8

12 months ago

2.0.1

1 year ago

2.0.0

1 year ago

2.0.17

11 months ago

2.0.18

11 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