Skip to content

oneslash/sqs-navbat

Repository files navigation

🔄 SQS Navbat

Description

SQS Navbat is a local development tool that emulates the AWS SQS API's interface. This allows you to test your SQS integrations without connecting to AWS, which is useful for offline development and testing. It's designed to behave as much as possible like AWS SQS, with the ability to send and get messages, among other functions.

Features

  • Emulates the SQS CreateQueue, SendMessage, ReceiveMessage, ListQueues
  • Error handling similar to the AWS SQS API.

Installation

$ git clone git@github.com:oneslash/sqs-navbat.git
$ cd sqs-navbat
$ cargo build

Usage

Start the server:

$ cargo install sqlx-cli
$ cargo sqlx prepare --database-url sqlite//database.db
$ cargo run

Parameters:

  • bind_address (Default: "127.0.0.1"): Defines the IP at which the server will be running. You can modify this value according to your needs.

  • port (Default: "9090"): This is the port number on which the server will listen for requests. If you have another service running on the default port, you may want to change this.

  • db_url (Default: "sqlite://database.db"): DB URL for the Sqlite, currently only SQLite is supported.

  • host_name (Default: http://localhost:9090) - This will be used for the queue URL creation.

$ ./s3-chelak --bind_address "0.0.0.0" --port "9090" --db_url "sqlite://database.db" 

API's implemented

AWS S3 API Name Implemented
AddPermission
CancelMessageMoveTask
ChangeMessageVisibility
ChangeMessageVisibilityBatch
CreateQueue
DeleteMessage
DeleteMessageBatch
DeleteQueue
GetQueueAttributes
GetQueueUrl
ListDeadLetterSourceQueues
ListMessageMoveTasks
ListQueues
ListQueueTags
PurgeQueue
ReceiveMessage
RemovePermission
SendMessage
SendMessageBatch
SetQueueAttributes
StartMessageMoveTask
TagQueue
UntagQueue

License

This project is licensed under the MIT License. See the LICENSE.md file for details.

Acknowledgments

  • AWS for its comprehensive and well-documented S3 API.