localsqs
v0.1.0
Published
A basic CLI wrapper for ElasticMQ designed for mocking SQS locally.
Maintainers
Readme
localsqs
A basic CLI wrapper for ElasticMQ designed for mocking SQS locally.
Table of contents
Overview
localsqs is a command-line tool for interacting with ElasticMQ, which provides a local, in-memory implementation of Amazon SQS. It allows developers to test and mock SQS behavior locally without needing AWS infrastructure.
This tool uses the ElasticMQ REST API to interact with queues, send and receive messages, and manage queue attributes.
Usage
npx localsqs --helpYou can use the CLI with the command npx localsqs.
Commands <required arg> [optional arg]
up: Start ElasticMQ in Docker.Options:
--api-port (default: 9324): Port for the REST-SQS API.--ui-port (default: 9325): Port for the UI.--forceor-f: Forcefully terminate processes occupying specified ports before starting.
createQueue <queueName>: Create a new SQS queue.deleteQueue <queueName>: Delete a specified queue.listQueues [namePrefix]: List all queues or filter by prefix.purgeQueue <queueName>: Purge all messages from a specified queue.send <queueName> [messageBody]: Send a message to a queue. You can provide messageBody as a JSON string or pipe JSON data.Options:
--sns: Will wrap the payload in a SNS-like message format.
receive <queueName>: Receive messages from a specified queue.getQueueUrl <queueName>: Get the URL for a specified queue.getQueueAttributes <queueName>: Retrieve attributes of a queue.
💡 Type
--helpafter any command to see the available options.
Examples
Start ElasticMQ
npx localsqs upWith custom ports
npx localsqs up --api-port 9334 --ui-port 9335 --forceCreate a queue
npx localsqs createQueue myQueueSend a message
npx localsqs send myQueue "hello world" --snsWith piped input
cat message.json | npx localsqs send myQueue --snsRead the messages in a queue
npx localsqs receive myQueueList all queues
npx localsqs listQueuesConfiguration
The tool defaults to connecting to ElasticMQ on http://127.0.0.1:9324 for the API and http://127.0.0.1:9325 for the UI.
💡 Use the
--apioption on a command to override the default API URL.
Error handling
localsqs uses fetch for API requests.
A common error is ECONNREFUSED, which may occur if ElasticMQ is not running or if there is an issue with the specified API port. Non-200 HTTP responses from ElasticMQ will also trigger errors.
Development
- Clone the repository and install dependencies.
- Build the project:
npm run build - Link the project for CLI testing:
npm link - You can now use
localsqsas a command.
