| Crates.io | qlite |
| lib.rs | qlite |
| version | 0.1.0 |
| created_at | 2025-09-08 00:52:25.533957+00 |
| updated_at | 2025-09-08 00:52:25.533957+00 |
| description | A sqs drop in replacement for local or cicd development |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1828670 |
| size | 947,036 |
A lightweight, SQS-compatible message queue backed by SQLite, written in Rust. The Primary purpose of this tool is to easily facilitate local or cicd based testing this project is not meant for production workloads and it is not recommended to use it for them.

cargo build --release
# Basic server on port 3000
./qlite server --port 3000
# With web UI enabled
./qlite server --port 3000 --enable-ui
# Create a queue
./qlite create-queue my-queue
# Send a message
./qlite send my-queue "Hello, World!"
# Receive messages
./qlite receive my-queue
# Delete a message
./qlite delete my-queue <receipt-handle>
# Set dummy credentials (any values work)
export AWS_ACCESS_KEY_ID=dummy
export AWS_SECRET_ACCESS_KEY=dummy
# Start QLite server
cargo run -- server --port 3000
# Use AWS CLI exactly like with real SQS
aws sqs create-queue --endpoint-url http://localhost:3000 --queue-name test-queue
aws sqs list-queues --endpoint-url http://localhost:3000
aws sqs send-message --endpoint-url http://localhost:3000 --queue-url http://localhost:3000/test-queue --message-body "Hello World"
aws sqs receive-message --endpoint-url http://localhost:3000 --queue-url http://localhost:3000/test-queue
# Python boto3 example
import boto3
sqs = boto3.client(
'sqs',
endpoint_url='http://localhost:3000',
aws_access_key_id='dummy',
aws_secret_access_key='dummy',
region_name='us-east-1'
)
# Works exactly like AWS SQS
queue = sqs.create_queue(QueueName='my-test-queue')
sqs.send_message(QueueUrl=queue['QueueUrl'], MessageBody='Hello from Python!')
This matrix shows which AWS SQS features are supported by QLite, available in AWS SQS, and covered by our test suite.
| Feature | QLite Support | AWS SQS | Tested |
|---|---|---|---|
| Core Queue Operations | |||
| CreateQueue | ✅ | ✅ | ✅ |
| ListQueues | ✅ | ✅ | ✅ |
| GetQueueUrl | ✅ | ✅ | ✅ |
| DeleteQueue | ✅ | ✅ | ✅ |
| GetQueueAttributes | ✅ | ✅ | ✅ |
| SetQueueAttributes | ✅ | ✅ | ✅ |
| Message Operations | |||
| SendMessage | ✅ | ✅ | ✅ |
| ReceiveMessage | ✅ | ✅ | ✅ |
| DeleteMessage | ✅ | ✅ | ✅ |
| SendMessageBatch | ✅ | ✅ | ✅ |
| DeleteMessageBatch | ✅ | ✅ | ✅ |
| Message Attributes | |||
| MessageAttributes | ✅ | ✅ | ✅ |
| MessageSystemAttributes | ✅ | ✅ | ✅ |
| Queue Types | |||
| Standard Queues | ✅ | ✅ | ✅ |
| FIFO Queues (.fifo) | ✅ | ✅ | ✅ |
| Queue Attributes | |||
| VisibilityTimeout | ✅ | ✅ | ✅ |
| MessageRetentionPeriod | ✅ | ✅ | ✅ |
| DelaySeconds | ✅ | ✅ | ✅ |
| MaxReceiveCount | ✅ | ✅ | ✅ |
| RedrivePolicy (DLQ) | ✅ | ✅ | ✅ |
| FIFO-Specific Features | |||
| MessageGroupId | ✅ | ✅ | ✅ |
| MessageDeduplicationId | ✅ | ✅ | ✅ |
| ContentBasedDeduplication | ❌ | ✅ | ✅ |
| FifoThroughputLimit | ❌ | ✅ | |
| DeduplicationScope | ❌ | ✅ | |
| Advanced Features | |||
| Long Polling (WaitTimeSeconds) | ✅ | ✅ | ✅ |
| Short Polling | ✅ | ✅ | ✅ |
| Message Timers (DelaySeconds) | ✅ | ✅ | ✅ |
| Dead Letter Queues | ✅ | ✅ | ✅ |
| Security & Access | |||
| IAM Integration | ❌ | ✅ | |
| SQS Access Policy | ❌ | ✅ | |
| Server-Side Encryption | ❌ | ✅ | |
| Monitoring & Management | |||
| CloudWatch Metrics | ❌ | ✅ | |
| Message Tracing | ❌ | ✅ | |
| Tags | ❌ | ✅ | |
| Format Support | |||
| XML Responses | ✅ | ✅ | ✅ |
| JSON Responses (SDK) | ✅ | ✅ | ✅ |
| Form-encoded Requests | ✅ | ✅ | ✅ |
QLite includes comprehensive test scripts in the scripts/ directory:
comprehensive_aws_cli_test.sh - Full feature testingproduction_readiness_test.sh - Core functionality validationdetailed_aws_cli_test.sh - Detailed output testingtest_sqs_compatible.sh - Format compatibility testingtest_fixes.sh - Validates all bug fixes and improvementstest_max_receive_count.sh - MaxReceiveCount and Dead Letter Queue testingRun tests with: ./scripts/production_readiness_test.sh or ./scripts/test_fixes.sh