1 unstable release
Uses new Rust 2024
| 0.1.0 | Sep 8, 2025 |
|---|
#607 in Testing
435KB
4.5K
SLoC
QLite
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.
Features
- SQS-Compatible API: Drop-in replacement for Amazon SQS with standard operations
- SQLite Backend: Persistent message storage with no external dependencies
- Web UI: Optional dashboard for queue monitoring and message browsing
- CLI Interface: Command-line tools for queue management
Web UI

Quick Start
Installation
cargo build --release
Start Server
# Basic server on port 3000
./qlite server --port 3000
# With web UI enabled
./qlite server --port 3000 --enable-ui
CLI Usage
# 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>
Quick Start with AWS CLI
# 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
SDK Integration Example
# 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!')
SQS Feature Compatibility Matrix
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 | ✅ | ✅ | ✅ |
Legend
- ✅ Fully Supported/Available - Feature works as expected
- ❌ Not Supported - Feature not implemented or not applicable
Test Coverage
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 testing
Run tests with: ./scripts/production_readiness_test.sh or ./scripts/test_fixes.sh
Dependencies
~43MB
~796K SLoC