Swiftpack.co - soto-project/soto-core as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by soto-project.
soto-project/soto-core v6.0.0-alpha.1
Core framework of Soto the Swift SDK for AWS
⭐️ 97
🕓 27 weeks ago
linux macOS iOS
.package(url: "https://github.com/soto-project/soto-core.git", from: "v6.0.0-alpha.1")

Soto Core

Swift 5.2 Codecov Result

The core framework for Soto the Swift SDK for AWS. This is the underlying driver for executing requests to AWS, but you should be using one of the libraries provided by Soto instead of this!

Documentation for the core library can be found here. Documentation for Soto can be found here.


We welcome and encourage contributions from all developers. Please read CONTRIBUTING.md for our contributing guidelines.


soto-core is released under the Apache 2.0 license. See LICENSE for details.


Stars: 97
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

1 week ago

Here are a list of all the changes from the latest 5.x.x version to 6.0.0

Major Release Changes

  • Preparing for implementing Sendable conformance (make classes final, set some member variables to private). PR #493
  • Add Sendable Conformance to all relevant objects/protocols. This includes AWSClient, AWSService, CredentialProvider, AWSShape and others.
  • Add support for automatic HTTP checksum calculation (md5, crc32, crc32c, sha1 and sha256) where checksum tests are supported (S3). PR #499
  • AWSHTTPClient, AWSHTTPRequest, AWSHTTPResponse are no longer public symbols.
  • Move _payloadOptions to AWSShape and rename to _options.
  • AWSResponse.headers type is now HTTPHeaders instead of [String: Any].
  • AWSPayload.stream has byteBufferAllocator parameter removed as it is no longer used.
  • Removed ConfigFile
  • DictionaryDecoder is no longer public
  • Removed version of SotoSignerV4.signHeaders/signURL that don't include omitSecurityToken parameter.
  • Removed version of AWSClient.init that doesn' include options parameter.
  • Removed version of AWSService.with that doesn't include region parameter.
  • Removed deprecated AWSClient.paginate functions

Minor Release Changes

  • Added async version of AWSClient.shutdown
  • Added AWSBase64Data to store base64 encoded data. This is to replace all instances of Data in AWS service API input/output shapes.
  • Add xmlNamespace to AWSServiceConfig.
  • Add AWSShape option .checksumRequired which calculates a checksum (md5, crc32, crc32c, sha1 and sha256) of the payload and places it in the headers.
  • Add AWSShape option .md5ChecksumHeader which indicates the shape has a MD5-Content header which will be calculated if the service config has option .calculateMD5 set to true.
  • Add Location.hostname which is used for placing content in the hostname.
  • Add Location.headerPrefix which is used for placing a dictionary into multiple headers with the keys prefixed by a string. This was part of the S3 middleware but has now been generalised.

Patch changes

  • Remove retry on NIOConnectionError as AsyncHTTPClient does this for us.
  • Only retry on HTTPClient.remoteConnectionClosed in debug builds as this could retry non-idempotent calls even when they have been successful.
  • Set user-agent header to "Soto/6.0".
  • Fix empty query protocol requests. Queries with no body should still include the API version and operation name in the body. PR #494
  • Fix V4 Signing bug where sequential spaces have to be removed from header values when building canonical request. PR #498
  • Require at least version 1.9.0 of AsyncHTTPClient

Other changes

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics