Skip to content

Is a Node.js package that provides an in-memory NATS server for testing and other purposes.

License

Notifications You must be signed in to change notification settings

Llirik1337/nats-memory-server

Repository files navigation

NATS In-Memory Server

GitHub license GitHub issues GitHub stars

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"
  },
  ...
}

Example

example.js

Plans

  • Write tests
  • Remove dependencies (Removed download dependency)

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.

About

Is a Node.js package that provides an in-memory NATS server for testing and other purposes.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published