Open nikpivkin opened 1 month ago
I'm sure we could make various changes to deflate the codegen output, but two questions here--
Hi @lucix-aws
If an application is distributed as a tool and widely used in containers, I think it would be nice if its size could be reduced with a little effort.
The list of services used is quite long:
go list -m -f '{{if not .Indirect}}{{.Path}}{{end}}' all | grep github.com/aws/aws-sdk-go-v2
github.com/aws/aws-sdk-go-v2
github.com/aws/aws-sdk-go-v2/config
github.com/aws/aws-sdk-go-v2/credentials
github.com/aws/aws-sdk-go-v2/service/accessanalyzer
github.com/aws/aws-sdk-go-v2/service/apigateway
github.com/aws/aws-sdk-go-v2/service/apigatewayv2
github.com/aws/aws-sdk-go-v2/service/athena
github.com/aws/aws-sdk-go-v2/service/cloudfront
github.com/aws/aws-sdk-go-v2/service/cloudtrail
github.com/aws/aws-sdk-go-v2/service/cloudwatch
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs
github.com/aws/aws-sdk-go-v2/service/codebuild
github.com/aws/aws-sdk-go-v2/service/docdb
github.com/aws/aws-sdk-go-v2/service/dynamodb
github.com/aws/aws-sdk-go-v2/service/ec2
github.com/aws/aws-sdk-go-v2/service/ecr
github.com/aws/aws-sdk-go-v2/service/ecs
github.com/aws/aws-sdk-go-v2/service/efs
github.com/aws/aws-sdk-go-v2/service/eks
github.com/aws/aws-sdk-go-v2/service/elasticache
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2
github.com/aws/aws-sdk-go-v2/service/elasticsearchservice
github.com/aws/aws-sdk-go-v2/service/emr
github.com/aws/aws-sdk-go-v2/service/iam
github.com/aws/aws-sdk-go-v2/service/kafka
github.com/aws/aws-sdk-go-v2/service/kinesis
github.com/aws/aws-sdk-go-v2/service/kms
github.com/aws/aws-sdk-go-v2/service/lambda
github.com/aws/aws-sdk-go-v2/service/mq
github.com/aws/aws-sdk-go-v2/service/neptune
github.com/aws/aws-sdk-go-v2/service/rds
github.com/aws/aws-sdk-go-v2/service/redshift
github.com/aws/aws-sdk-go-v2/service/s3
github.com/aws/aws-sdk-go-v2/service/secretsmanager
github.com/aws/aws-sdk-go-v2/service/sns
github.com/aws/aws-sdk-go-v2/service/sqs
github.com/aws/aws-sdk-go-v2/service/sts
github.com/aws/aws-sdk-go-v2/service/workspaces
Sure, and I agree, but that doesn't answer the question of whether the binary size is actually a concrete issue.
Regardless you're certainly right that we can make size reductions in the codegen output throughout. We already achieved a significant overall reduction once with the recent authentication refactor. Since this is more of a smithy-related issue I'm going to move this to that repo and leave open.
Describe the feature
The files
serialize.go
,deserialize.go
andvalidators.go
contain a lot of generated and uniform code. Using generics will reduce the package size.The total size of the services is 464 mb:
The size of these middleware is 182 mb, which is 40% of the total package size.
The output of the go-size-analizer for my application:
Use Case
Reducing the size of Golang binary
Proposed Solution
No response
Other Information
No response
Acknowledgements
AWS Go SDK V2 Module Versions Used
-
Go version used
-