{"id":30907151,"url":"https://github.com/stvnksslr/qlite","last_synced_at":"2025-09-09T12:09:32.972Z","repository":{"id":313051805,"uuid":"1049776029","full_name":"stvnksslr/qlite","owner":"stvnksslr","description":"drop in sqs replacement for cicd or local testing","archived":false,"fork":false,"pushed_at":"2025-09-03T17:14:31.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-03T17:27:56.370Z","etag":null,"topics":["aws-cli","aws-sqs","cicd","devtools","sqs","sqs-queue"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stvnksslr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-03T13:31:52.000Z","updated_at":"2025-09-03T17:15:01.000Z","dependencies_parsed_at":"2025-09-03T17:27:59.512Z","dependency_job_id":"ce75125c-22be-4bce-a7e6-26dde8c70e09","html_url":"https://github.com/stvnksslr/qlite","commit_stats":null,"previous_names":["stvnksslr/qlite"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/stvnksslr/qlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvnksslr%2Fqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvnksslr%2Fqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvnksslr%2Fqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvnksslr%2Fqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stvnksslr","download_url":"https://codeload.github.com/stvnksslr/qlite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stvnksslr%2Fqlite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274292948,"owners_count":25258173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-cli","aws-sqs","cicd","devtools","sqs","sqs-queue"],"created_at":"2025-09-09T12:09:28.981Z","updated_at":"2025-09-09T12:09:32.957Z","avatar_url":"https://github.com/stvnksslr.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QLite\n\nA lightweight, SQS-compatible message queue backed by SQLite, written in Rust.\nThe Primary purpose of this tool is to easily facilitate local or cicd based\ntesting this project is not meant for production workloads and it is not recommended\nto use it for them.\n\n## Features\n\n- **SQS-Compatible API**: Drop-in replacement for Amazon SQS with standard operations\n- **SQLite Backend**: Persistent message storage with no external dependencies\n- **Web UI**: Optional dashboard for queue monitoring and message browsing\n- **CLI Interface**: Command-line tools for queue management\n\n### Web UI\n![QLite Dashboard](docs/screenshots/dashboard.png)\n\n## Quick Start\n\n### Installation\n\n```bash\ncargo build --release\n```\n\n### Start Server\n\n```bash\n# Basic server on port 3000\n./qlite server --port 3000\n\n# With web UI enabled\n./qlite server --port 3000 --enable-ui\n```\n\n### CLI Usage\n\n```bash\n# Create a queue\n./qlite create-queue my-queue\n\n# Send a message\n./qlite send my-queue \"Hello, World!\"\n\n# Receive messages\n./qlite receive my-queue\n\n# Delete a message\n./qlite delete my-queue \u003creceipt-handle\u003e\n```\n\n### Quick Start with AWS CLI\n\n```bash\n# Set dummy credentials (any values work)\nexport AWS_ACCESS_KEY_ID=dummy\nexport AWS_SECRET_ACCESS_KEY=dummy\n\n# Start QLite server\ncargo run -- server --port 3000\n\n# Use AWS CLI exactly like with real SQS\naws sqs create-queue --endpoint-url http://localhost:3000 --queue-name test-queue\naws sqs list-queues --endpoint-url http://localhost:3000\naws sqs send-message --endpoint-url http://localhost:3000 --queue-url http://localhost:3000/test-queue --message-body \"Hello World\"\naws sqs receive-message --endpoint-url http://localhost:3000 --queue-url http://localhost:3000/test-queue\n```\n\n### SDK Integration Example\n\n```python\n# Python boto3 example\nimport boto3\n\nsqs = boto3.client(\n    'sqs',\n    endpoint_url='http://localhost:3000',\n    aws_access_key_id='dummy',\n    aws_secret_access_key='dummy',\n    region_name='us-east-1'\n)\n\n# Works exactly like AWS SQS\nqueue = sqs.create_queue(QueueName='my-test-queue')\nsqs.send_message(QueueUrl=queue['QueueUrl'], MessageBody='Hello from Python!')\n```\n\n## SQS Feature Compatibility Matrix\n\nThis matrix shows which AWS SQS features are supported by QLite, available in AWS SQS, and covered by our test suite.\n\n| Feature                        | QLite Support | AWS SQS | Tested |\n| ------------------------------ | :-----------: | :-----: | :----: |\n| **Core Queue Operations**      |\n| CreateQueue                    |       ✅       |    ✅    |   ✅    |\n| ListQueues                     |       ✅       |    ✅    |   ✅    |\n| GetQueueUrl                    |       ✅       |    ✅    |   ✅    |\n| DeleteQueue                    |       ✅       |    ✅    |   ✅    |\n| GetQueueAttributes             |       ✅       |    ✅    |   ✅    |\n| SetQueueAttributes             |       ✅       |    ✅    |   ✅    |\n| **Message Operations**         |\n| SendMessage                    |       ✅       |    ✅    |   ✅    |\n| ReceiveMessage                 |       ✅       |    ✅    |   ✅    |\n| DeleteMessage                  |       ✅       |    ✅    |   ✅    |\n| SendMessageBatch               |       ✅       |    ✅    |   ✅    |\n| DeleteMessageBatch             |       ✅       |    ✅    |   ✅    |\n| **Message Attributes**         |\n| MessageAttributes              |       ✅       |    ✅    |   ✅    |\n| MessageSystemAttributes        |       ✅       |    ✅    |   ✅    |\n| **Queue Types**                |\n| Standard Queues                |       ✅       |    ✅    |   ✅    |\n| FIFO Queues (.fifo)            |       ✅       |    ✅    |   ✅    |\n| **Queue Attributes**           |\n| VisibilityTimeout              |       ✅       |    ✅    |   ✅    |\n| MessageRetentionPeriod         |       ✅       |    ✅    |   ✅    |\n| DelaySeconds                   |       ✅       |    ✅    |   ✅    |\n| MaxReceiveCount                |       ✅       |    ✅    |   ✅    |\n| RedrivePolicy (DLQ)            |       ✅       |    ✅    |   ✅    |\n| **FIFO-Specific Features**     |\n| MessageGroupId                 |       ✅       |    ✅    |   ✅    |\n| MessageDeduplicationId         |       ✅       |    ✅    |   ✅    |\n| ContentBasedDeduplication      |       ❌       |    ✅    |   ✅    |\n| FifoThroughputLimit            |       ❌       |    ✅    |        |\n| DeduplicationScope             |       ❌       |    ✅    |        |\n| **Advanced Features**          |\n| Long Polling (WaitTimeSeconds) |       ✅       |    ✅    |   ✅    |\n| Short Polling                  |       ✅       |    ✅    |   ✅    |\n| Message Timers (DelaySeconds)  |       ✅       |    ✅    |   ✅    |\n| Dead Letter Queues             |       ✅       |    ✅    |   ✅    |\n| **Security \u0026 Access**          |\n| IAM Integration                |       ❌       |    ✅    |        |\n| SQS Access Policy              |       ❌       |    ✅    |        |\n| Server-Side Encryption         |       ❌       |    ✅    |        |\n| **Monitoring \u0026 Management**    |\n| CloudWatch Metrics             |       ❌       |    ✅    |        |\n| Message Tracing                |       ❌       |    ✅    |        |\n| Tags                           |       ❌       |    ✅    |        |\n| **Format Support**             |\n| XML Responses                  |       ✅       |    ✅    |   ✅    |\n| JSON Responses (SDK)           |       ✅       |    ✅    |   ✅    |\n| Form-encoded Requests          |       ✅       |    ✅    |   ✅    |\n\n### Legend\n- ✅ **Fully Supported/Available** - Feature works as expected\n- ❌ **Not Supported** - Feature not implemented or not applicable\n\n### Test Coverage\nQLite includes comprehensive test scripts in the `scripts/` directory:\n- `comprehensive_aws_cli_test.sh` - Full feature testing\n- `production_readiness_test.sh` - Core functionality validation  \n- `detailed_aws_cli_test.sh` - Detailed output testing\n- `test_sqs_compatible.sh` - Format compatibility testing\n- `test_fixes.sh` - Validates all bug fixes and improvements\n- `test_max_receive_count.sh` - MaxReceiveCount and Dead Letter Queue testing\n\nRun tests with: `./scripts/production_readiness_test.sh` or `./scripts/test_fixes.sh`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstvnksslr%2Fqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstvnksslr%2Fqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstvnksslr%2Fqlite/lists"}