The project is in a healthy, maintained state
Ruby gem that mimics AWS SQS Extended Client with features like S3 offloading, compression, cleanup, validation, and logging.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

 Project Readme

sqs_extended_client

A Ruby gem that provides support for sending and receiving large messages using Amazon SQS by offloading payloads to Amazon S3, similar to the AWS Java SDK's SQS Extended Client Library.


✨ Features

  • ✅ Automatically offloads large messages to S3
  • ✅ Configurable max message size threshold
  • ✅ Optional compression support
  • ✅ Automatic S3 payload cleanup after reading (configurable)
  • ✅ JSON schema validation (planned)
  • ✅ Error handling for missing or inaccessible buckets
  • ✅ Ready for use as a drop-in extension of Aws::SQS::Client

🔧 Installation

gem install sqs_extended_client

gem 'sqs_extended_client', path: 'path/to/your/local/gem'

Example:

require 'aws-sdk-sqs'
require 'aws-sdk-s3'
require 'sqs_extended_client'

sqs = Aws::SQS::Client.new(region: 'us-east-1')
s3  = Aws::S3::Client.new(region: 'us-east-1')

client = SqsExtendedClient::Client.new(
  sqs: sqs,
  s3: s3,
  queue_url: 'https://sqs.us-east-1.amazonaws.com/123456789012/my-queue',
  bucket_name: 'my-sqs-large-message-bucket',
  always_use_s3: false,
  delete_s3_payload_after_read: true,
  compress: true
)

client.send_message("Hello world!")
messages = client.receive_messages