awslabs / smithy
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 722 files with 54,719 lines of code.
    • 0 very long files (0 lines of code)
    • 5 long files (2,998 lines of code)
    • 45 medium size files (13,130 lines of codeclsfd_ftr_w_mp_ins)
    • 111 small files (15,493 lines of code)
    • 561 very small files (23,098 lines of code)
0% | 5% | 23% | 28% | 42%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
java0% | 5% | 23% | 28% | 42%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
smithy-model0% | 4% | 26% | 25% | 43%
smithy-jsonschema0% | 38% | 26% | 17% | 17%
smithy-utils0% | 26% | 30% | 20% | 22%
smithy-jmespath0% | 18% | 32% | 11% | 36%
smithy-openapi0% | 0% | 37% | 29% | 32%
smithy-aws-cloudformation0% | 0% | 40% | 9% | 49%
smithy-build0% | 0% | 18% | 34% | 47%
smithy-diff0% | 0% | 23% | 16% | 60%
smithy-aws-apigateway-traits0% | 0% | 28% | 41% | 29%
smithy-aws-cloudformation-traits0% | 0% | 35% | 21% | 43%
smithy-cli0% | 0% | 18% | 36% | 44%
smithy-aws-traits0% | 0% | 8% | 35% | 56%
smithy-waiters0% | 0% | 19% | 46% | 33%
smithy-codegen-core0% | 0% | 0% | 60% | 39%
smithy-aws-apigateway-openapi0% | 0% | 0% | 58% | 41%
smithy-linters0% | 0% | 0% | 47% | 52%
smithy-aws-iam-traits0% | 0% | 0% | 26% | 73%
smithy-mqtt-traits0% | 0% | 0% | 17% | 82%
Longest Files (Top 50)
File# lines# units
Schema.java
in smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema
711 96
StringUtils.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
612 32
IdlModelParser.java
in smithy-model/src/main/java/software/amazon/smithy/model/loader
611 37
SmithyIdlModelSerializer.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
539 51
Lexer.java
in smithy-jmespath/src/main/java/software/amazon/smithy/jmespath
525 31
DefaultNodeDeserializers.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
499 10
OpenApiConverter.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy
486 25
CodeWriter.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
446 66
SelectorParser.java
in smithy-model/src/main/java/software/amazon/smithy/model/selector
428 25
Model.java
in smithy-model/src/main/java/software/amazon/smithy/model
416 80
JsonParser.java
in smithy-model/src/main/java/software/amazon/smithy/model/node/internal
413 32
AbstractRestProtocol.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy/protocols
411 23
ModifiedTrait.java
in smithy-diff/src/main/java/software/amazon/smithy/diff/evaluators
392 18
SmithyBuildImpl.java
in smithy-build/src/main/java/software/amazon/smithy/build
377 12
NodeValidationVisitor.java
in smithy-model/src/main/java/software/amazon/smithy/model/validation
375 46
ResourceSchema.java
in smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/model
360 60
AttributeValueImpl.java
in smithy-model/src/main/java/software/amazon/smithy/model/selector
336 30
ModelAssembler.java
in smithy-model/src/main/java/software/amazon/smithy/model/loader
326 28
TypeChecker.java
in smithy-jmespath/src/main/java/software/amazon/smithy/jmespath
310 23
Parser.java
in smithy-jmespath/src/main/java/software/amazon/smithy/jmespath
303 17
ObjectNode.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
302 58
AstModelLoader.java
in smithy-model/src/main/java/software/amazon/smithy/model/loader
301 20
DefaultNodeSerializers.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
300 30
ExpressionSerializer.java
in smithy-jmespath/src/main/java/software/amazon/smithy/jmespath
294 22
IntegrationTrait.java
in smithy-aws-apigateway-traits/src/main/java/software/amazon/smithy/aws/apigateway/traits
291 51
Node.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
278 63
CfnResourceIndex.java
in smithy-aws-cloudformation-traits/src/main/java/software/amazon/smithy/aws/cloudformation/traits
261 17
Shape.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
257 64
JsonSchemaShapeVisitor.java
in smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema
257 25
BuildParameterBuilder.java
in smithy-cli/src/main/java/software/amazon/smithy/cli
257 23
PaginatedTraitValidator.java
in smithy-model/src/main/java/software/amazon/smithy/model/validation/validators
253 31
CodeFormatter.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
252 23
OpenApiMapper.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy
250 13
OperationObject.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
247 34
JsonSchemaConverter.java
in smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema
240 26
HttpBindingIndex.java
in smithy-model/src/main/java/software/amazon/smithy/model/knowledge
237 19
ShapeId.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
232 27
CfnConverter.java
in smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/fromsmithy
226 15
NodeMapper.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
219 28
ParameterObject.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
216 33
PathItem.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
214 33
ResourceShape.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
213 34
ReferencesTrait.java
in smithy-model/src/main/java/software/amazon/smithy/model/traits
211 32
ModelSerializer.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
211 23
ExamplesTrait.java
in smithy-model/src/main/java/software/amazon/smithy/model/traits
209 36
ClientEndpointDiscoveryValidator.java
in smithy-aws-traits/src/main/java/software/amazon/smithy/aws/traits/clientendpointdiscovery
208 7
ValidationEvent.java
in smithy-model/src/main/java/software/amazon/smithy/model/validation
207 29
ReferencesTraitValidator.java
in smithy-model/src/main/java/software/amazon/smithy/model/validation/validators
205 10
ModelRuntimeTypeGenerator.java
in smithy-waiters/src/main/java/software/amazon/smithy/waiters
202 27
FilterSuppressions.java
in smithy-build/src/main/java/software/amazon/smithy/build/transforms
202 20
Files With Most Units (Top 20)
File# lines# units
Schema.java
in smithy-jsonschema/src/main/java/software/amazon/smithy/jsonschema
711 96
Model.java
in smithy-model/src/main/java/software/amazon/smithy/model
416 80
CodeWriter.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
446 66
Shape.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
257 64
Node.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
278 63
ResourceSchema.java
in smithy-aws-cloudformation/src/main/java/software/amazon/smithy/aws/cloudformation/schema/model
360 60
ObjectNode.java
in smithy-model/src/main/java/software/amazon/smithy/model/node
302 58
IntegrationTrait.java
in smithy-aws-apigateway-traits/src/main/java/software/amazon/smithy/aws/apigateway/traits
291 51
SmithyIdlModelSerializer.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
539 51
NodeValidationVisitor.java
in smithy-model/src/main/java/software/amazon/smithy/model/validation
375 46
IdlModelParser.java
in smithy-model/src/main/java/software/amazon/smithy/model/loader
611 37
ExamplesTrait.java
in smithy-model/src/main/java/software/amazon/smithy/model/traits
209 36
OperationObject.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
247 34
ResourceShape.java
in smithy-model/src/main/java/software/amazon/smithy/model/shapes
213 34
ParameterObject.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
216 33
PathItem.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi/model
214 33
StringUtils.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
612 32
OpenApiConfig.java
in smithy-openapi/src/main/java/software/amazon/smithy/openapi
175 32
JsonParser.java
in smithy-model/src/main/java/software/amazon/smithy/model/node/internal
413 32
ReferencesTrait.java
in smithy-model/src/main/java/software/amazon/smithy/model/traits
211 32
Files With Long Lines (Top 1)

There is only one file with lines longer than 120 characters. In total, there is only one long line.

File# lines# units# long lines
StringUtils.java
in smithy-utils/src/main/java/software/amazon/smithy/utils
612 32 1