apple / swift-nio-http2
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 88 files with 16,031 lines of code.
    • 3 very long files (6,817 lines of code)
    • 3 long files (2,064 lines of code)
    • 10 medium size files (3,045 lines of codeclsfd_ftr_w_mp_ins)
    • 12 small files (1,646 lines of code)
    • 60 very small files (2,459 lines of code)
42% | 12% | 18% | 10% | 15%
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
swift43% | 13% | 19% | 9% | 14%
rb0% | 0% | 0% | 100% | 0%
yaml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
Sources/NIOHPACK76% | 0% | 9% | 7% | 5%
Sources/NIOHTTP2/ConnectionStateMachine61% | 0% | 0% | 9% | 28%
Sources/NIOHTTP217% | 34% | 27% | 7% | 12%
Sources/NIOHTTP2/Frame Buffers0% | 0% | 93% | 0% | 6%
Sources/NIOHTTP2PerformanceTester0% | 0% | 0% | 54% | 45%
scripts0% | 0% | 0% | 100% | 0%
docker0% | 0% | 0% | 0% | 100%
Sources/NIOHTTP2Server0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
FuzzTesting/Sources/FuzzHTTP20% | 0% | 0% | 0% | 100%
FuzzTesting0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
HuffmanTables.swift
in Sources/NIOHPACK
4506 -
ConnectionStateMachine.swift
in Sources/NIOHTTP2/ConnectionStateMachine
1241 38
HTTP2Error.swift
in Sources/NIOHTTP2
1070 8
HTTP2FrameParser.swift
in Sources/NIOHTTP2
830 22
StreamStateMachine.swift
in Sources/NIOHTTP2
621 15
HTTP2StreamChannel.swift
in Sources/NIOHTTP2
613 14
HTTP2ToHTTP1Codec.swift
in Sources/NIOHTTP2
488 10
HTTP2ChannelHandler.swift
in Sources/NIOHTTP2
479 2
HPACKHeader.swift
in Sources/NIOHPACK
373 12
HTTP2StreamMultiplexer.swift
in Sources/NIOHTTP2
291 1
OutboundFlowControlBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
282 14
OutboundFrameBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
261 10
ConcurrentStreamBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
237 24
StreamMap.swift
in Sources/NIOHTTP2
221 13
HPACKHeaders+Validation.swift
in Sources/NIOHTTP2
209 4
HPACKEncoder.swift
in Sources/NIOHPACK
204 -
ConnectionStreamsState.swift
in Sources/NIOHTTP2/ConnectionStateMachine
192 14
HuffmanCoding.swift
in Sources/NIOHPACK
189 5
analyze_performance_results.rb
in scripts
150 11
HTTP2Frame.swift
in Sources/NIOHTTP2
143 -
HPACKDecoder.swift
in Sources/NIOHPACK
138 1
Bench1Conn10kRequests.swift
in Sources/NIOHTTP2PerformanceTester
136 11
HeaderTables.swift
in Sources/NIOHPACK
130 7
ServerOnly10KRequestsBenchmark.swift
in Sources/NIOHTTP2PerformanceTester
130 4
StreamTeardownBenchmark.swift
in Sources/NIOHTTP2PerformanceTester
119 8
MultiplexerAbstractChannel.swift
in Sources/NIOHTTP2
110 13
HTTP2PingData.swift
in Sources/NIOHTTP2
107 -
HTTP2ConnectionStateChange.swift
in Sources/NIOHTTP2
102 1
HTTP2PipelineHelpers.swift
in Sources/NIOHTTP2
98 -
main.swift
in Sources/NIOHTTP2Server
94 1
HTTP2ErrorCode.swift
in Sources/NIOHTTP2
87 3
HuffmanDecodingBenchmark.swift
in Sources/NIOHTTP2PerformanceTester
85 4
IndexedHeaderTable.swift
in Sources/NIOHPACK
84 1
HTTP2FlowControlWindow.swift
in Sources/NIOHTTP2
81 8
HTTP2StreamID.swift
in Sources/NIOHTTP2
74 3
main.swift
in Sources/NIOHTTP2PerformanceTester
71 2
StaticHeaderTable.swift
in Sources/NIOHPACK
64 -
Package.swift
in root
62 -
IntegerCoding.swift
in Sources/NIOHPACK
62 2
HTTP2UserEvents.swift
in Sources/NIOHTTP2
58 -
StreamChannelList.swift
in Sources/NIOHTTP2
58 3
DynamicHeaderTable.swift
in Sources/NIOHPACK
56 5
ControlFrameBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
55 -
InboundWindowManager.swift
in Sources/NIOHTTP2
54 5
StreamChannelFlowController.swift
in Sources/NIOHTTP2
52 3
ReceivingPushPromiseState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
50 2
HTTP2SettingsState.swift
in Sources/NIOHTTP2/ConnectionStateMachine
50 4
HPACKErrors.swift
in Sources/NIOHPACK
49 -
SendingPushPromiseState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameSendingStates
48 3
ReceivingHeadersState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
47 2
Files With Most Units (Top 20)
File# lines# units
ConnectionStateMachine.swift
in Sources/NIOHTTP2/ConnectionStateMachine
1241 38
ConcurrentStreamBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
237 24
HTTP2FrameParser.swift
in Sources/NIOHTTP2
830 22
StreamStateMachine.swift
in Sources/NIOHTTP2
621 15
ConnectionStreamsState.swift
in Sources/NIOHTTP2/ConnectionStateMachine
192 14
OutboundFlowControlBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
282 14
HTTP2StreamChannel.swift
in Sources/NIOHTTP2
613 14
MultiplexerAbstractChannel.swift
in Sources/NIOHTTP2
110 13
StreamMap.swift
in Sources/NIOHTTP2
221 13
HPACKHeader.swift
in Sources/NIOHPACK
373 12
Bench1Conn10kRequests.swift
in Sources/NIOHTTP2PerformanceTester
136 11
analyze_performance_results.rb
in scripts
150 11
OutboundFrameBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
261 10
HTTP2ToHTTP1Codec.swift
in Sources/NIOHTTP2
488 10
HTTP2Error.swift
in Sources/NIOHTTP2
1070 8
HTTP2FlowControlWindow.swift
in Sources/NIOHTTP2
81 8
StreamTeardownBenchmark.swift
in Sources/NIOHTTP2PerformanceTester
119 8
HeaderTables.swift
in Sources/NIOHPACK
130 7
DynamicHeaderTable.swift
in Sources/NIOHPACK
56 5
HuffmanCoding.swift
in Sources/NIOHPACK
189 5
Files With Long Lines (Top 20)

There are 53 files with lines longer than 120 characters. In total, there are 537 long lines.

File# lines# units# long lines
StreamStateMachine.swift
in Sources/NIOHTTP2
621 15 139
ConnectionStateMachine.swift
in Sources/NIOHTTP2/ConnectionStateMachine
1241 38 92
HTTP2ChannelHandler.swift
in Sources/NIOHTTP2
479 2 42
HTTP2FrameParser.swift
in Sources/NIOHTTP2
830 22 36
HTTP2Error.swift
in Sources/NIOHTTP2
1070 8 19
main.swift
in Sources/NIOHTTP2PerformanceTester
71 2 16
HTTP2PipelineHelpers.swift
in Sources/NIOHTTP2
98 - 15
ConnectionStreamsState.swift
in Sources/NIOHTTP2/ConnectionStateMachine
192 14 11
HTTP2ToHTTP1Codec.swift
in Sources/NIOHTTP2
488 10 11
ReceivingPushPromiseState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
50 2 8
SendingHeadersState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameSendingStates
47 2 8
ReceivingHeadersState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
47 2 7
SendingGoawayState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameSendingStates
28 2 7
SendingPushPromiseState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameSendingStates
48 3 7
OutboundFrameBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
261 10 7
HTTP2StreamMultiplexer.swift
in Sources/NIOHTTP2
291 1 7
ReceivingDataState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
30 1 6
ReceivingWindowUpdateState.swift
in Sources/NIOHTTP2/ConnectionStateMachine/FrameReceivingStates
30 1 6
OutboundFlowControlBuffer.swift
in Sources/NIOHTTP2/Frame Buffers
282 14 6
HTTP2StreamChannel.swift
in Sources/NIOHTTP2
613 14 6