Ktor
Duplication

Intro
  • For duplication, we look at places in code where there are six or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 14% duplication:
    • 55,236 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 8,120 duplicated lines
  • 316 duplicates
system14% (8,120 lines)
Duplication per Extension
kt8% (4,175 lines)
json47% (3,925 lines)
kts4% (20 lines)
Duplication per Component (primary)
ktor-client26% (4,184 lines)
ktor-io18% (2,641 lines)
ktor-server3% (323 lines)
ktor-http4% (308 lines)
ktor-network8% (298 lines)
ktor-utils8% (279 lines)
ktor-features2% (87 lines)
gradle0% (0 lines)
karma0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G ktor-network ktor-network ktor-utils ktor-utils ktor-network--ktor-utils 194

Download: SVG DOT (open online Graphviz editor)

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
Size#FoldersFilesLinesCode
86 x 2 ktor-io/posix/src/io/ktor/utils/io/core
ktor-io/js/src/io/ktor/utils/io/core
InputNative.kt
InputJs.kt
20:167 (76%)
30:177 (69%)
view
77 x 3 ktor-io/js/src/io/ktor/utils/io/core
ktor-io/jvm/src/io/ktor/utils/io/core
ktor-io/posix/src/io/ktor/utils/io/core
InputJs.kt
InputJvm.kt
InputNative.kt
63:177 (62%)
52:166 (71%)
53:167 (68%)
view
54 x 2 ktor-io/posix/src/io/ktor/utils/io/core
ktor-io/js/src/io/ktor/utils/io/core
OutputNative.kt
OutputJs.kt
1:81 (80%)
1:83 (88%)
view
48 x 3 ktor-io/js/src/io/ktor/utils/io/core
ktor-io/jvm/src/io/ktor/utils/io/core
ktor-io/posix/src/io/ktor/utils/io/core
OutputJs.kt
OutputJvm.kt
OutputNative.kt
8:80 (78%)
10:81 (75%)
7:78 (71%)
view
38 x 2 ktor-io/jvm/src/io/ktor/utils/io/charsets
ktor-io/jvm/src/io/ktor/utils/io/internal
Strings.kt
Strings.kt
22:79 (38%)
106:163 (25%)
view
38 x 2 ktor-http/ktor-http-cio/posix/src/io/ktor/http/cio
ktor-http/ktor-http-cio/js/src/io/ktor/http/cio
RequestResponseBuilderNative.kt
RequestResponseBuilderJs.kt
15:93 (95%)
14:92 (95%)
view
32 x 2 ktor-io/posix/src/io/ktor/utils/io/core
ktor-io/js/src/io/ktor/utils/io/core
ScannerNative.kt
ScannerJS.kt
23:71 (39%)
27:75 (40%)
view
31 x 2 ktor-server/ktor-server-.../ktor/server/benchmarks
ktor-server/ktor-server-.../ktor/server/benchmarks
IntegrationBenchmark.kt
AsyncIntegrationBenchmark.kt
38:79 (31%)
38:79 (27%)
view
27 x 2 ktor-io/posix/src/io/ktor/utils/io
ktor-io/js/src/io/ktor/utils/io
ByteReadChannelNative.kt
ByteReadChannelJs.kt
100:232 (52%)
69:202 (56%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3838:3865 (<1%)
3902:3929 (<1%)
3966:3993 (<1%)
4030:4057 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
4094:4121 (<1%)
4158:4185 (<1%)
4222:4249 (<1%)
4286:4313 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
4350:4377 (<1%)
4414:4441 (<1%)
4478:4505 (<1%)
4542:4569 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1790:1817 (<1%)
1854:1881 (<1%)
1918:1945 (<1%)
1982:2009 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
254:281 (<1%)
318:345 (<1%)
382:409 (<1%)
446:473 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
766:793 (<1%)
830:857 (<1%)
894:921 (<1%)
958:985 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
510:537 (<1%)
574:601 (<1%)
638:665 (<1%)
702:729 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3326:3353 (<1%)
3390:3417 (<1%)
3454:3481 (<1%)
3518:3545 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
2814:2841 (<1%)
2878:2905 (<1%)
2942:2969 (<1%)
3006:3033 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3070:3097 (<1%)
3134:3161 (<1%)
3198:3225 (<1%)
3262:3289 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1278:1305 (<1%)
1342:1369 (<1%)
1406:1433 (<1%)
1470:1497 (<1%)
view
Most Frequent Duplicates
The list of 20 most frequently found duplicates.
Size#FoldersFilesLinesCode
20 x 60 ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
ktor-client/ktor-client-...9-07-01T14.55.32.068056
...
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
jvm.json
...
5:24 (1%)
65:84 (1%)
125:144 (1%)
185:204 (1%)
245:264 (1%)
305:324 (1%)
365:384 (1%)
425:444 (1%)
485:504 (1%)
545:564 (1%)
...
view
6 x 8 ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
ktor-io/common/src/io/ktor/utils/io/core
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
InputLittleEndian.kt
99:106 (3%)
114:121 (3%)
129:136 (3%)
140:147 (3%)
151:158 (3%)
244:251 (3%)
255:262 (3%)
266:273 (3%)
view
6 x 7 ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
ktor-client/ktor-client-.../io/ktor/client/request
builders.kt
builders.kt
builders.kt
builders.kt
builders.kt
builders.kt
builders.kt
120:125 (3%)
138:143 (3%)
156:161 (3%)
174:179 (3%)
192:197 (3%)
210:215 (3%)
228:233 (3%)
view
6 x 6 ktor-io/posix/src/io/ktor/utils/io
ktor-io/jvm/src/io/ktor/utils/io/core
ktor-io/js/src/io/ktor/utils/io/core
ktor-io/jvm/src/io/ktor/utils/io
ktor-io/posix/src/io/ktor/utils/io/core
ktor-io/js/src/io/ktor/utils/io
ByteReadChannelNative.kt
InputJvm.kt
InputJs.kt
ByteReadChannelJVM.kt
InputNative.kt
ByteReadChannelJs.kt
225:230 (11%)
45:50 (5%)
50:55 (4%)
232:237 (6%)
40:45 (5%)
195:200 (12%)
view
6 x 4 ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
24:31 (2%)
63:69 (2%)
142:148 (2%)
180:186 (2%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3838:3865 (<1%)
3902:3929 (<1%)
3966:3993 (<1%)
4030:4057 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
4094:4121 (<1%)
4158:4185 (<1%)
4222:4249 (<1%)
4286:4313 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
4350:4377 (<1%)
4414:4441 (<1%)
4478:4505 (<1%)
4542:4569 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1790:1817 (<1%)
1854:1881 (<1%)
1918:1945 (<1%)
1982:2009 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
254:281 (<1%)
318:345 (<1%)
382:409 (<1%)
446:473 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
766:793 (<1%)
830:857 (<1%)
894:921 (<1%)
958:985 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
510:537 (<1%)
574:601 (<1%)
638:665 (<1%)
702:729 (<1%)
view
6 x 4 ktor-io/posix/src/io/ktor/utils/io
ktor-io/jvm/src/io/ktor/utils/io
ktor-io/js/src/io/ktor/utils/io
ktor-io/jvm/src/io/ktor/utils/io
ByteChannelNative.kt
ByteBufferChannel.kt
ByteChannelJS.kt
ByteChannelSequentialJVM.kt
73:78 (4%)
63:69 (<1%)
80:85 (8%)
15:20 (4%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3326:3353 (<1%)
3390:3417 (<1%)
3454:3481 (<1%)
3518:3545 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
2814:2841 (<1%)
2878:2905 (<1%)
2942:2969 (<1%)
3006:3033 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
3070:3097 (<1%)
3134:3161 (<1%)
3198:3225 (<1%)
3262:3289 (<1%)
view
6 x 4 ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
ktor-io/js/src/io/ktor/utils/io/bits
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
PrimitiveArraysJs.kt
218:225 (2%)
257:263 (2%)
339:345 (2%)
377:383 (2%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1278:1305 (<1%)
1342:1369 (<1%)
1406:1433 (<1%)
1470:1497 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1534:1561 (<1%)
1598:1625 (<1%)
1662:1689 (<1%)
1726:1753 (<1%)
view
26 x 4 ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
ktor-client/ktor-client-...9-07-03T14.44.20.802797
jvm.json
jvm.json
jvm.json
jvm.json
1022:1049 (<1%)
1086:1113 (<1%)
1150:1177 (<1%)
1214:1241 (<1%)
view