Smithy Qt is (or will be, eventually) two things:
QtSmithy
- a cross-platform naitve Qt library for reading Smithy models; andsmithy-qt
- a cross-platform CLI tool for rendering text files in response to Smithy models.
Smithy Qt is written in Qt, and optimised for generating Qt code (specifically for replacing QtAws's bespoke code generator), but by using the generic Grantlee templating engine, could be used to generate code (or indeed non-code) for any language or technology.
graph LR
model(["Smithy Model"]) --QtSmithy--> smithy-qt("smithy-qt")
templates(["Grantlee<br/>Templates"]) --Grantlee--> smithy-qt
smithy-qt --Grantlee--> output(["Rendered Files"])
graph LR
model(["Amazon's<br/>AWS Models"]) --> smithy-qt("smithy-qt")
templates(["qt-aws-sdk<br/>Templates"]) --> smithy-qt
smithy-qt --> output(["Generated Code"]) --> aws-sdk-qt["AWS SDK for Qt"]
code(["Handwritten Code"]) --> aws-sdk-qt
classDef aws-sdk-qt fill:lightgreen,stroke:green
class templates,code,aws-sdk-qt aws-sdk-qt
style model fill:orange,stroke:darkorange