Changelog

View Source

v4.0.0 - 2026-07-12

First release of this fork (BeamLabEU/beamlab_ex_aws_sqs), based on ex-aws/ex_aws_sqs v3.4.0. Published to Hex as beamlab_ex_aws_sqs (the original ex_aws_sqs name is already taken).

  • BREAKING CHANGE: All operations now use the AWS SQS JSON protocol (AmazonSQS.<Action> / application/x-amz-json-1.0) instead of the legacy Query/XML protocol. Fixes ex-aws/ex_aws_sqs#34. Successful responses are now the raw JSON body AWS returns (e.g. %{"MessageId" => ...}) instead of a hand-parsed, snake_cased map — see the README's migration guide.
  • BREAKING CHANGE: Removed ExAws.SQS.SaxyParser and ExAws.SQS.SweetXmlParser, and the :saxy/:sweet_xml optional dependencies along with them — there's no more XML to parse.
  • Documented send_message_batch/2 with a runnable example. Fixes ex-aws/ex_aws_sqs#35
  • Relaxed the :hackney dependency constraint (it's only used by this library's own test suite) so it no longer conflicts with apps on hackney 4.x. Fixes ex-aws/ex_aws_sqs#36
  • Added start_message_move_task/2, cancel_message_move_task/1, and list_message_move_tasks/2 (DLQ redrive tasks, added to the AWS API after upstream's last release).
  • Added pagination options (:max_results, :next_token) to list_queues/1 and list_dead_letter_source_queues/2.
  • receive_message/2's :attribute_names option now sends the modern MessageSystemAttributeNames field instead of the deprecated AttributeNames field.
  • Fixed binary message attribute handling for the JSON protocol: BinaryValue is now correctly base64-encoded so that the configured JSON codec's encode!/1 (and the wire request) succeeds. Callers still pass the raw binary as :value.
  • send_message_batch/2 (and related batch helpers) now consistently accept both keyword lists and maps for entries (previously only keyword lists worked for entries containing message attributes).
  • Bumped minimum Elixir version to ~> 1.18, ex_aws to ~> 2.7. Dropped the direct dependency on Jason in favor of Elixir's built-in JSON module (available since 1.18) — set config :ex_aws, json_codec: JSON.

Changelog entries below this point are from the original ex-aws/ex_aws_sqs project.

v3.4.0

  • fix sqs_message_attribute typing
  • fix: update to Config module import
  • refactor: catch sweetxml parsing error / handle non-xml error body
  • Add dialyzer, credo, CI workflow alignment
  • Bump minimum Elixir version to 1.10

v3.3.1 - 2021-03-29

v3.3.0 - 2021-03-28

  • Updated min elixir version to 1.7
  • Updated ex_aws dependency from "~> 2.0" -> "~> 2.1"
  • documentation and formating updates

v3.2.1 - 2020-04-14

  • Updated mix deps for :saxy & :sweet_xml to be marked optional

v3.2.0 - 2020-04-13

  • Added optional support for saxy XML parser
  • Saxy parser set as default parser if both :saxy and :sweet_xml loaded.

v3.1.0 - 2020-01-22

  • Added support for Queue Tags

v3.0.2 - 2019-11-21

  • Improved docs

v3.0.1 - 2019-11-21

  • Updated sqs_message_attribute_name typespec for SQS.receive_message to match AWS support attributes.

v3.0.0 - 2019-08-17

  • BREAKING CHANGE: Changed queue specific functions to take the QueueUrl instead of the QueueName. Previously the name was used to build the path for the request. This is an anti-pattern according to aws docs and prevents this library from being used with alternative SQS compatible services, like localstack.

v2.0.1 - 2019-04-11

  • Relaxed :ex_aws version constraint from v2.0.0 to v2.0

v2.0.0 - 2017-11-10

  • Major Project Split. Please see the main ExAws repository for previous changelogs.