Swiftpack.co - Package - swift-aws/aws-sdk-swift-core


A Core Framework for AWSSDKSwift

This is the underlying driver for executing requests to AWS, but you should likely use one of the libraries provided by the package above instead of this!

Swift NIO

This client utilizes Swift NIO to power its interactions with AWS. It returns an EventLoopFuture in order to allow non-blocking frameworks to use this code. Please see the Swift NIO documentation for more details, and please let us know via an Issue if you have questions!

Example Package.swift

// swift-tools-version:4.2
import PackageDescription

let package = Package(
    name: "MyAWSTool",
    dependencies: [
        .package(url: "https://github.com/swift-aws/aws-sdk-swift", from: "3.0.0"),
    targets: [
            name: "MyAWSTool",
            dependencies: ["CloudFront", "ELB", "ELBV2",  "IAM"]),
            name: "MyAWSToolTests",
            dependencies: ["MyAWSTool"]),


aws-sdk-swift-core is released under the MIT license. See LICENSE for details.


Stars: 49
Help us keep the lights on


3.2.0 - Aug 17, 2019

  • If dictionary decoder expects an array but doesn't find one then stick object found inside an array. Fixes issue in API Gateway where single element arrays are just returned as the element.
  • AWSClient.init() has a new sessionToken parameter.
  • Add session tokens to headers before constructing authorization header.
  • XML Parser ignores newlines as well as whitespace in between XML nodes.
  • Don't encode single or double quotation marks in XML
  • Added general purpose validation code to be used by auto-generated validate() functions in aws-sdk-swift.
  • Added AWSShape.idempotencyToken() for auto-generating idempotency tokens.
  • Added support for OpenSSL 1.1 while still supporting earlier versions.
  • New me-south-1 region is available.
  • Added the ability to edit response bodies before they are decoded into an AWSShape.

3.1.1 - Jul 19, 2019

Adam Fowler: XML: If text is completely white space don't add a text node

3.1.0 - Jul 12, 2019

Adam Fowler: Use Codable for serializing XML requests and parsing XML responses Using query encoder for ec2 Added xmlNamespace to the root payload xml element when required Only add a body to an AWSRequest if there are shape members that are included in the body Store Timestamp internally as a Date Add DictionaryEncoder and use this when encoding JSON payloads Decode JSON dictionary data as base64 Add encoding hints for serializing arrays and dictionaries. Hints include naming of XML, query elements and whether container is flattened Percent encode more characters in query body Add code for ec2 to flatten all arrays, regardless of encoding hints Added regions ap-east-1, eu-west-3 and eu-north-1 Updated core XML loader

giginet: Avoid warning on Xcode

3.0.1 - May 19, 2019

  • return Future instead of Void so clients can chain off the response and catch errors
  • normalize status code valdiation validate status code on methods with no response

3.0.0 - May 17, 2019

Adam Fowler: Fixed Incorrect stringToSign created for API calls that include query parameters without assignation. Fixed it by ensuring we never send nil parameters to V4 Signer. Added test for signing AWSRequest Fix = sign being percent encoded twice

Joe Smith: Utilize the officially sanctioned docker image to handle tests (#59) Quiet the xcodebuild logs and run in parallel (#64)

Jonathan McAllister: refactor send to return Futures add typalias Future as shorthand for EventLoopFuture ensure url.hostWithPort is not nil update nio to 1.14 fix warning for redundant modifiers refactor getCredential to return a future and move it back to the client class fix HEAD requests throw InvalidRequest Error instead of fatalError if uri is invalid add token to signedURL if the credential has one log resonse http status code for Unhandled errors do not populate a body for restxml requests that do not have a payloadPath. Input is headers only if there is no payloadPath on restxml APIs HEAD request is just a GET request with the HEAD method - remove content-type for head request - use signed url for HEAD requests

noppoman: resurrect user specific endpoint request add default value for endpoint add test for custom endpoint signing