Socket
Socket
Sign inDemoInstall

github.com/aws/smithy-go

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/aws/smithy-go


Version published
Created
Source

Smithy Go

Go Build StatusCodegen Build Status

Smithy code generators for Go and the accompanying smithy-go runtime.

The smithy-go runtime requires a minimum version of Go 1.20.

WARNING: All interfaces are subject to change.

Can I use the code generators?

In order to generate a usable smithy client you must provide a protocol definition, such as AWS restJson1, in order to generate transport mechanisms and serialization/deserialization code ("serde") accordingly.

The code generator does not currently support any protocols out of the box other than the new smithy.protocols#rpcv2Cbor, therefore the useability of this project on its own is currently limited. Support for all AWS protocols exists in aws-sdk-go-v2. We are tracking the movement of those out of the SDK into smithy-go in #458, but there's currently no timeline for doing so.

Plugins

This repository implements the following Smithy build plugins:

IDGAV prefixDescription
go-codegensoftware.amazon.smithy.go:smithy-go-codegenImplements Go client code generation for Smithy models.
go-server-codegensoftware.amazon.smithy.go:smithy-go-codegenImplements Go server code generation for Smithy models.

NOTE: Build plugins are not currently published to mavenCentral. You must publish to mavenLocal to make the build plugins visible to the Smithy CLI. The artifact version is currently fixed at 0.1.0.

go-codegen

Configuration

GoSettings contains all of the settings enabled from smithy-build.json and helper methods and types. The up-to-date list of top-level properties enabled for go-client-codegen can be found in GoSettings::from().

SettingTypeRequiredDescription
servicestringyesThe Shape ID of the service for which to generate the client.
modulestringyesName of the module in generated.json (and go.mod if generateGoMod is enabled) and doc.go.
generateGoModbooleanWhether to generate a default go.mod file. The default value is false.
goDirectivestringGo directive of the module. The default value is the minimum supported Go version.

Supported protocols

ProtocolNotes
smithy.protocols#rpcv2CborEvent streaming not yet implemented.

Example

This example applies the go-codegen build plugin to the Smithy quickstart example created from smithy init:

{
  "version": "1.0",
  "sources": [
    "models"
  ],
  "maven": {
    "dependencies": [
      "software.amazon.smithy.go:smithy-go-codegen:0.1.0"
    ]
  },
  "plugins": {
    "go-codegen": {
      "service": "example.weather#Weather",
      "module": "github.com/example/weather",
      "generateGoMod": true,
      "goDirective": "1.20"
    }
  }
}

go-server-codegen

This plugin is a work-in-progress and is currently undocumented.

License

This project is licensed under the Apache-2.0 License.

FAQs

Package last updated on 03 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc