You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Smithy](https://smithy.io/2.0/index.html) code generators for [Swift](https://www.swift.org).
9
+
10
+
> **⚠️ WARNING**: All interfaces are subject to change.
11
+
12
+
## Getting Started
13
+
14
+
- Check out [high-level overview of Smithy](https://smithy.io/2.0/index.html)
15
+
- Try out Smithy by following [the quick start guide](https://smithy.io/2.0/quickstart.html)
16
+
- Apply the Smithy Swift codegen plugin to your Gradle project to generate Swift code
17
+
18
+
## Feedback
19
+
20
+
If you'd like to provide feedback, report a bug, request a feature, or would like to bring
21
+
attention to an issue in general, please do so by submitting a GitHub issue to the repo [here](https://github.com/smithy-lang/smithy-swift/issues/new/choose).
22
+
23
+
This is the preferred mechanism for user feedback as it allows anyone with similar issue or suggestion to engage in conversation as well.
24
+
25
+
## Contributing
26
+
27
+
If you are interested in contributing to Smithy Swift, see [CONTRIBUTING](CONTRIBUTING.md) for more information.
28
+
12
29
## Development
13
30
14
-
### Kotlin Modules
31
+
### Module Structure
32
+
33
+
#### Codegen Modules
15
34
16
-
*`smithy-swift-codegen` - a module that generates Swift code from Smithy models.
35
+
*`smithy-swift-codegen` - the Kotlin module that generates Swift code from Smithy models.
17
36
18
-
###Swift Modules
37
+
#### Runtime Modules (under `Sources/`)
19
38
20
-
*`ClientRuntime` - provides networking, serialization interfaces and implementations using the AWS Swift CRT Bindings for a Swift SDK generated from Smithy Models.
21
-
*`SmithyTestUtil` - provides helper methods for auto-generated Swift unit tests.
39
+
* API modules
40
+
*`SmithyChecksumsAPI` - protocols & enums for checksum
41
+
*`SmithyEventStreamsAPI` - protocols & enums for encoding / decoding a single event stream message
42
+
*`SmithyEventStreamsAuthAPI` - protocols & enums for encoding / decoding event streams and signing event stream messages
43
+
*`SmithyHTTPAPI` - protocols & enums for HTTP request and response
44
+
*`SmithyHTTPAuthAPI` - protocols & enums related to signing HTTP requests
45
+
*`SmithyIdentityAPI` - protocols & enums for identity and identity resolver, which are used to sign requests
46
+
*`SmithyRetriesAPI` - protocols & enums related to automatic client-side retry behavior
47
+
*`SmithyWaitersAPI` - protocols & enums related to waiters
48
+
49
+
50
+
* Implementation modules
51
+
*`ClientRuntime` - various runtime functionality used by generated code; contains
52
+
anything that doesn't squarely fit into other implementation modules below. Has most
53
+
of the runtime modules as its dependency.
54
+
*`Smithy` - core functionality used by all clients and other runtime modules, such
55
+
as custom logger type and generic request and response types
56
+
*`SmithyChecksums` - implementations for checksum algorithms
57
+
*`SmithyEventStreams` - implementations for message encoder / decoder and event stream encoder / decoder
58
+
*`SmithyHTTPAuth` - concrete types related to auth flow
59
+
*`SmithyHTTPClient` - concrete request type and its builder
60
+
*`SmithyIdentity` - concrete identity types and identity resolvers for those identity types
61
+
*`SmithyRetries` - concrete retry strategy types
62
+
*`SmithyStreams` - concrete stream types
63
+
*`SmithyTimestamps` - utility implementations for timestamp shapes in Smithy
64
+
*`SmithyReadWrite` - generic implementations for runtime serde
65
+
*`SmithyJSON` - serde implementations specific to JSON
66
+
*`SmithyXML` - serde implementations specific to XML
67
+
*`SmithyFormURL` - serde implementations specific to FormURL
68
+
*`SmithyTestUtil` - helper methods for auto-generated Swift unit tests.
69
+
70
+
> 📖 For more information on runtime modules, see [the Smithy Runtime Module Documentation in API reference](https://sdk.amazonaws.com/swift/api/awssdkforswift/latest/documentation/awssdkforswift#Smithy-Runtime-Module-Documentation).
22
71
23
72
## License
24
73
@@ -27,4 +76,3 @@ This project is licensed under the Apache-2.0 License.
27
76
## Security
28
77
29
78
See [CONTRIBUTING](CONTRIBUTING.md) for more information.
0 commit comments