Soto icon

Soto

Soto v7.0.0

We are really pleased to announce the release of version 7 of Soto.

Swift Concurrency

We have replaced the internals of Soto. All the SwiftNIO EventLoopFuture based code has been replaced with Swift concurrency. The advantage of this include

  • An easier to read and maintain code base
  • A cleaner API surface
  • Better support for streaming of requests and responses
  • Additional features we weren't able to implement previously (like Event streams)

This does come with one major change to the APIs. Along with the removal of the EventLoop based internal code the EventLoopFuture based APIs have been removed. From this point on Soto will only supply Swift concurrency APIs.

Middleware

Middleware has been re-written to support a Middleware stack result builder. Many of the processes Soto applies to a request have been converted into middleware and when we construct our client and services we build a middleware stack of these eg

self.middleware = AWSMiddlewareStack {
    SigningMiddleware(credentialProvider: credentialProvider)
    RetryMiddleware(retryPolicy: retryPolicyFactory.retryPolicy)
    ErrorHandlingMiddleware(options: options)
}

Much of this is internal and isn't visible to the user but if you want to add multiple middleware to your client you will need to use the middleware stack result builder to pass them to the client.

Full details

You can get the full details of all the changes in the release notes.