Soto is a third party Swift SDK for Amazon Web Services (AWS). The library provides access to all AWS services and works on Linux, macOS and iOS.
Soto is heavily integrated with a number of Swift on Server packages including AsyncHTTPClient, SwiftNIO, Logging, Metrics and is primarily targeted for Swift on Server. All the API calls are designed to be called in an asynchronous manner to avoid blocking your current thread.
Even though it isn't the primary target we have still put in a fair amount of work to ensure the library works on iOS and will continue to ensure this is the case.
The library is split into three parts.
- SotoCore which does all the communication with AWS. It serializes and signs requests, sends them to AW and parses the responses/errors.
- Soto contains the service libraries. Each service has its own library. The library contains a service object that contains the configuration details for communicating with that service and then all the api calls you can make to the service.
- The final part is the code generator. This is used to generate all the service code detailed above. The code generator uses the same json service model files that all other AWS SDKs use. So you should see consistency in the APIs across all SDKs for AWS including Soto.