{"id":48267378,"url":"https://github.com/raiden-rs/raiden-sqs","last_synced_at":"2026-04-04T21:58:09.158Z","repository":{"id":37183115,"uuid":"282666529","full_name":"raiden-rs/raiden-sqs","owner":"raiden-rs","description":"[WIP] ⚡ Ergonomic SQS library for Rust.","archived":false,"fork":false,"pushed_at":"2026-03-14T20:13:01.000Z","size":111,"stargazers_count":5,"open_issues_count":22,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-15T05:54:01.353Z","etag":null,"topics":["aws","rust","sqs"],"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/raiden-rs.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":"2020-07-26T14:27:18.000Z","updated_at":"2023-04-17T19:28:48.000Z","dependencies_parsed_at":"2023-09-27T11:16:46.679Z","dependency_job_id":"adb05755-376b-482c-88a9-5c17700bd883","html_url":"https://github.com/raiden-rs/raiden-sqs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raiden-rs/raiden-sqs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raiden-rs%2Fraiden-sqs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raiden-rs%2Fraiden-sqs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raiden-rs%2Fraiden-sqs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raiden-rs%2Fraiden-sqs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raiden-rs","download_url":"https://codeload.github.com/raiden-rs/raiden-sqs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raiden-rs%2Fraiden-sqs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","rust","sqs"],"created_at":"2026-04-04T21:58:08.524Z","updated_at":"2026-04-04T21:58:09.148Z","avatar_url":"https://github.com/raiden-rs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src =\"https://github.com/raiden-rs/raiden-sqs/blob/master/assets/raiden-sqs.png?raw=true\" /\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    Ergonomic SQS library for Rust.\n\u003c/p\u003e\n\n---\n\n[![status]][actions]\n\n[status]: https://img.shields.io/github/workflow/status/raiden-rs/raiden-sqs/CI/master\n[actions]: https://github.com/raiden-rs/raiden-sqs/actions?query=branch%3Amaster\n\n## Status\n\nUnderdevelopment. No working examples.\n\n## Development\n\n### Test\n\n```\ncd test-suite\ncargo test\n```\n\n## Supported APIs\n\n- [ ] AddPermission\n- [ ] ChangeMessageVisibility\n- [ ] ChangeMessageVisibilityBatch\n- [ ] CreateQueue\n- [ ] DeleteMessage\n- [ ] DeleteMessageBatch\n- [ ] DeleteQueue\n- [ ] GetQueueAttributes\n- [ ] GetQueueUrl\n- [ ] ListDeadLetterSourceQueues\n- [ ] ListQueues\n- [ ] ListQueueTags\n- [ ] PurgeQueue\n- [ ] ReceiveMessage\n- [ ] RemovePermission\n- [ ] SendMessage\n- [ ] SendMessageBatch\n- [ ] SetQueueAttributes\n- [ ] TagQueue\n- [ ] UntagQueue\n\n## Code (not working example)\n\n```rust\nuse raiden_core::*;\nuse raiden_sqs::*;\n\n#[derive(Sqs, Serialize, Debug)]\n#[sqs(queue_name = \"MyFirstQueue\", region = \"us-east-1\")]\npub struct MyMessage {\n    name: String,\n    greetings: String,\n}\n\n#[derive(Sqs, Serialize, Debug)]\n#[sqs(queue_name = \"MoreQueue\", ops_prefix = \"sqs_\", ops_suffix = \"_message\", region = \"us-east-1\")]\npub struct MoreMessage {\n    name: String,\n    more: String,\n}\n\n#[derive(Sqs, Serialize, Debug)]\n#[sqs(queue_name = \"MinimumQueue\", ops = (\"receive\", \"delete\"))]\npub struct MinimumMessage {\n    name: String,\n    ops: String,\n}\n\nfn main() {\n    let mut rt = tokio::runtime::Runtime::new().unwrap();\n    async fn run() {\n        // Send a message\n        let res = MyMessage {\n            name: \"kuy\".into(),\n            greetings: \"Hello, SQS!\".into(),\n        }.send().await.unwrap();\n        println!(\"Sent: message_id={}\", res.message_id);\n\n        // Receive a message\n        let res = MyMessage::receive().await.unwrap();\n        println!(\"Received: {:?}\", res.message);\n\n        // Delete a message\n        res.delete().await;\n\n        // Send messages in batch\n        let messages = vec![...];\n        let ret = MyMessage::batch_send(\u0026messages).await.unwrap();\n\n        // Delete messages in batch\n        let handles = vec![...];\n        let ret = MyMessage::batch_delete(\u0026handles).await.unwrap();\n\n        // Send a message with delay\n        MyMessage {\n            name: \"kuy\".into(),\n            greetings: \"Goodbye, SQS!\".into(),\n        }.send_with().delay(30).await.unwrap();\n\n        // Send a message with attribute/meta data\n        MyMessage {\n            name: \"kuy\".into(),\n            greetings: \"Goodbye, SQS!\".into(),\n        }.send_with().attr(\"System\", \"Solar\").attr(\"Universe\", 42).await.unwrap();\n\n        // Send a plain text message\n        MyMessage::create(\"I'm not JSON\".into()).send().await.unwrap();\n        MyMessage::create(\"Delayed message\".into()).send_with().delay(30).await.unwrap();\n\n        // Send a message with overriding config\n        MyMessage {\n            name: \"kuy\".into(),\n            greetings: \"Hello, Tokyo!\".into(),\n        }.send_with().config(\u0026opt).await.unwrap();\n\n        // Rename operation methods to avoid conflict\n        let res = MoreMessage {\n            name: \"kuy\".into(),\n            more: \"YES IS MORE\".into(),\n        }.sqs_send_message().await.unwrap();\n\n        let res = MoreMessage::sqs_receive_message().await.unwrap();\n    }\n    rt.block_on(run());\n}\n```\n\n## Memo\n\n- Strategy for error handling and retry policy\n- Derive `Into` trait to convert struct to String\n- Delay\n- Batch ops\n- Support simple client to send plain text\n- Type checking for FIFO\n- Message attributes\n- Automatic deletion (waiting for async Drop trait)\n- Feature flag to disable serialize/deserialize\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraiden-rs%2Fraiden-sqs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraiden-rs%2Fraiden-sqs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraiden-rs%2Fraiden-sqs/lists"}