CHANGELOG.md 128,6 КБ
Newer Older
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
# 1.3.2
> Published 12 Mar 2020

* Introduced iOS streaming response support
* Provided challenge handler in iOS client configuration
* Improved JsonFeature configuration DSL (#1472)
* Simplified server kotlinx.serialization config
* Recovered `HttpRequestBuilder.takeFrom` function (#1626)
* Allowed to configure default cookies asynchronously
* Exposed server `LocationInfo` and added location resolve functions (#1657)
* Introduced function for async writing to server response channel (#1703)
* Added an option to filter logged calls for ktor-client-logging
* Fixed iOS client timeouts
* Fixed iOS crash
* Fixed 100% CPU Apache Ktor Http Client #1018 (#1689)
* Fixed missing client response logging
* Fixed CIO server local address detection (#1663)
* Fix server request origin to provide header's host and port when available
* Fixed random missing feature errors caused by concurrency at startup (#1694)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1020
* Fixed `Set-Cookie` header parser in iOS and JS
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1021
1022
1023
1024
1025
1026
1027
1028
1029
* Fixed client multiple redirects with relative path (#1704)
* Fixed unwrapping cancellation exceptions in client (#1482)
* Fixed missed preconfigured `OkHttpClient` in `OkHttpEngine` (#1646)
* Fixed websocket to complete closeReason on disconnection (#1275).
* Fixed websocket sending CloseReason(1009) when frame is too big
* Fixed websocket pinger logging
* Fixed maxFrameSize for chunked frames
* Fixed URL scheme parser (#1614)
* Fixed platform detection in `PlatformUtils.IS_NODE` and `PlatformUtils.IS_BROWSER` (#1675)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1030
* Fixed `Short.highByte`
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
* Fixed consumeEachBufferRange (#1693)
* Fixed httpclient gzip decoding failure (#1189)
* Fixed `InputStream` wrapper for `Input`
* Bumped versions:
    - Kotlin 1.3.70
    - kotlinx.coroutines 1.3.4
    - kotlinx.serialization 0.20.0
    - kotlinx.html 0.7.1
    - dropwizard 4.1.2
    - slf4j 1.7.30
    - mustache 0.9.6
    - pebble 3.1.2
    - webjars 0.43
    - jackson 2.10.2

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1046
# 1.3.1
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1047
> Published 5 Feb 2020
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1048
1049
1050
1051
1052
1053
1054
1055

* Introduced experimental client timeout feature
* Fixed OkHttp leaking threads
* Fix decoding UTF8 lines (#1323)
* Fixed websocket close sequence (#1262, #1571, #1427)
* Reduced number of redundant exceptions logged in jetty server
* Fixed text decoder in js client under nodejs
* Fixed NSUrlSession memory leak (#1420)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1056
* Make server feature throw `BadContentTypeFormatException` to get status 400
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
* Reverted accidentally removed client `LocalFileContent`
* Removed User-Agent header in browser (to avoid CORS-related issues)
* Fixed request body with `Input`
* Improved native clients performance
* Fixed native and js client cancellation issues
* Fixed file descriptor leak in Jetty server (#1589)
* Fixed server sessions and cache related iseues (#1591)
* Upgraded JWT/JWKS versions
* Upgraded Netty version
* Fixed multiple server jwt auth providers processing (#1586)
* Fixed Auth retry logic (#1051)
* Fixed ApplicationRequest.remoteHost to not report "unknown"
* Fixed corrupted headers in CIO client and server on Android
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1070
* Improved server cancellation handling
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1071

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1072
# 1.3.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1073
> 14 Jan 2020
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1074
1075

* ktor client proxy support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1076
* Introduced `HttpStatement` and deprecated potentially dangerous resource-leaking client API
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1077
* Eliminated kotlinx.io dependency
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1078
1079
1080
1081
1082
1083
1084
1085
* Fixed server identity compression handling: keep original content length
* Fixed handling GET requests with body (#1302)
* Fixed curl request with empty body
* Added iOS url session configuration
* Fixed CIO engine no longer sends port in "Host" header (#1295)
* Add INTRINSIC value to TLS signature algorithms
* Introduced ability to send string in request body
* Improved client and server typeOf support with kotlinx.serialization
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1086
* Gradle 5.4.1+ with newer metadata (metadata 1.0)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1087
1088
* Improved exceptions handling in client and server on Android
* Added missing TLS parameters and relaxed TLS parsing to ignore unsupported features
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1089
1090
1091
1092
1093
1094
* Improved session diagnostics (#1368)
* Fixed `hookRequests` in test engine (#1300)
* Deprecate java.time related API and related cleanup (for future kotlin.time support)
* Restricted CIO HTTP headers parser
* Introduced header name and value validation
* Fixed must-revalidate on the request side in ktor client (#1406)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1095
* Fixed OkHttp client resource cleanup on close
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1096
1097
* Added watchos/tvos native targets
* Fixed content truncation at native and JS targets
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1098
* Fixed server's `If-Range` header parsing to avoid crash at date parsing (#1377)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1099
1100
* Fixed server's conditional headers processing
* Reduced required JDK version for `DefaultHeaders` server feature
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1101
1102
1103
* Fixed client hanging due to exception in response pipeline
* Replaced HttpClientJvmEngine to HttpClientEngineBase that is now common for all platforms (affects only custom client engines)
* Fixed hierarchy of execution and call contexts in clients that allows to properly handle request lifetime using execution context.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1104
* Optimize JS module import time (#1464)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1105
* Upgraded versions of Netty, Jetty and Tomcat implementations
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1106
1107
1108
1109
* Added Pebble template engine (#1374)
* Introduced localPort route that is always tied to actual socket port (#1392)
* Fixed cookie expiration date parsing (#1390)
* Server authentication feature's phases are now public (#1160)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1110
* Fixed auth header resending after redirect (#1467)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1111
1112
* TCP half-close made optional for CIO client engine and disabled by default.
* Apache client random timeouts fixed
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1113
* Fixed locale-dependant code (#1491)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1114
* Fixed unclosed websocket channels if cancelled too early
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1115
1116
1117
1118
1119
1120
1121
1122
1123
* TCP half-close made optional for CIO client engine and disabled by default. (#1456)
* Improved ktor-client-mock engine to be thread safe (#1505)
* Fixed client cookies logging (#1506)
* Fixed multiple application stop events in test engine (#1498)
* Fixed CIO ActorSelectorManager to not spin due to cancelled keys (affects both CIO client and server)
* Made default auth validate functions fail to force users to implement them
* Introduced test client instance in the test server
* Fixed various server and client engines to return `null` for missing headers rather than empty list
* Introduced support for json structures in client and server (#1519)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1124
* Introduced ktor-server-core binary compatibility tracking
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1125
* kotlinx.coroutines 1.3.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1126

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1127
1128
1129
1130
1131
1132
# 1.2.6
> 25 Nov 2019

* Kotlin 1.3.60
* Restricted CIO HTTP headers parser
* Introduced header name and value validation
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1133

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1134
# 1.2.5
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1135
> 27 Sep 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150

* Fixed `ClosedSendChannel` exceptions in client and server
* Fixed Android crash on client and server exceptions
* Fixed server identity compression handling: keep original content length
* Fixed partial content without the passed range doesn't have content length
* Fixed curl request with empty body
* Fixed empty client form data (#1297)
* Fixed CIO engine no longer sends port in "Host" header (#1295)
* Fixed potential deadlock in Android engine
* Gradle Metadata 1.0 (Gradle 5.6.2)
* kotlinx.coroutines 1.3.2
* kotlinx.serialization 0.13.0
* Dropwizard 4.1.0
* jackson 2.9.9.3

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1151
1152
1153
# 1.2.4
> Published 2 Sep 2019

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1154
1155
1156
1157
1158
* Fixed multipart form header entity separator
* Fixed crypto in IE11 (#1283)
* Marked response transient in the client exception (#1256)
* Fixed network on main thread in okhttp engine close
* Fixed follow redirect iOS (#1000)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1159
1160
1161
* Kotlin 1.3.50
* kotlinx.coroutines 1.3.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1162
# 1.2.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1163
> Published 1 Aug 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173

* JS websocket bugs fixes and improvements
* Eliminated Java9's Base64 implementation (useful for older JDK and Android)
* Fixed bug of adding unexpected trailing slash (#1201) (#1206)
* Improved apache and okhttp client engines performance
* Fixed client response body cancellation
* Added client response streaming on nodejs
* Deprecated old client `BasicAuth`
* Introduced a flag to send auth without negotiation
* Added server kotlinx.serialization initial support (`SerializationConverter`)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1174
1175
1176
1177
* Client TLS implementation fixes: cancellation and error handling.
* Added web assembly content type.
* Prohibited server double request content `call.receive`.
    * Introduce `DoubleReceive` feature that makes it work.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1178
* Server CORS support fixed and improved
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1179
1180
* Added initial kotlinx.serialization support for server including receiving generic collections.
* Introduced `ktor-bom` for better dependency management.
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1181
* Improved jetty server engine configuration to enable manual connectors setup.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1182
1183
* Fixed client memory leak (#1223).
* Upgraded Jetty, Netty and utility libraries.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1184
1185
* Kotlin 1.3.41

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1186
1187
1188
1189
1190
1191

Breaking changes/Migration steps:
* CORS doesn't allow non-simple request body content types anymore by default
  * to allow extra content types such as json, enable `allowNonSimpleContentTypes`
* At least Kotlin 1.3.41 IS REQUIRED

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1192
# 1.2.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
> Published 20 June 2019

* Upgraded to Kotlin 1.3.40.
* Netty server engine uses native transports when available (#1122).
* Upgraded to Netty 4.1.36 (#1190).
* Added JVM shutdown hooks in server engines (#1111, #1164).
* Introduced challenge builder functions in server auth providers (#366, #921, #1130, #798).
* Segmentation fault is fixed in native clients (#1135).
* Improved gracefull shutdown in ktor client engines Jetty and Apache.
* Removed kotlin-reflect from ktor jvm clients (#1162).
* Client threads daemonized (#1170).
* Relaxed client cookie value restrictions (#1069).
* Fixed empty client requests with okhttp engine (#1175).
* API cleanup, deprecations.
* kotlinx.coroutines 1.2.2, kotlinx.serialization 0.11.1.

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
# 1.2.1
>  Published 27 May 2019

* Fixed module function lookup (regress, #1132)
* Fixed SessionTransportTransformers application order (#1147)
* Fixed double content length header in requests on older Androids (#1060)
* Fixed receiving a byte channel crash on Android (#1140)
* Fixed websocket sockets lifecyle on Jetty engine
* Downgraded Gradle to reduce gradle metadata version

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1219
# 1.2.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1220
> 14 May 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240

* Introduced multiplatform websockets: jvm, js.
* Added client certificates support.
* Fixed updating session in directory storage (#963).
* Added optional contentType to formDsl (#910).
* `MockEngine` version which favors execution order and returns processed requests (#924).
* Fixed `Unit` body serialization.
* Allowed using preconfigured OkHttp client instance.
* Defined the client default user agent.
* Improved curl error diagnostics and resource management.
* Fixed LogLevel.NONE with body bytes.
* Added CIO endpoint config builder.
* Fixed status code check in client Auth feature.
* Fixed client close issue.
* Fixed: `GMTDate.toJvmDate()` uses current date instead of given date. (#986)
* Moved client auth to common.
* Use `UTF-8` as default charset in BasicAuth.
* Introduced client content encoding feature.
* Introduced client call validator feature.
* Old API deprecations and removals.
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
* Fixed gzip/deflate on JDK11
* Introduced JWT auth header retrieval configuration (#1048)
* `CallLogging` message format customization (#1047)
* Fixed logging error with no call-related MDC (#1033)
* Avoided using constant hash salt in `UserHashedTableAuth`
* Added LDAP auth provider proper characters escaping
* Minimized jetty core pool size and made it configurable (#1083)
* Made servlet engine use servlet config instead of context (#1063)
* Introduced accepted content types contributor in ContentNegotiation (#357)
* Introduced `ApplicationEnvironment.rootPath` with servlet engine support (context path) (#738)
* Support for `rootPath` in routing by default (#738)
* Introduce ability to serve web resources from WAR
* Added micrometer metrics (#1037)
* Added Thymeleaf templating feature (#988)
* Cookie session use `/` path by default (#1043)
* Add hot reload experimental support for JDK9+ (VM option required)
* `HttpStatusCode` equals check is amended
* Added client `AcceptCharset` header support
* `KotlinxSerializer` moved to a separate artifact
* Client engine API simplified
* Introduced client cache support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1262
1263
1264
1265
1266
* Server authenticator config reworked
* Server digest auth updated to use UTF-8
* Added experimental android client line-wrapping logger
* Fixed webjars parameters handling and several minor fixes
* Introduced JWTVerifier configure block when using JWKProvider
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1267
* Added client json feature custom content types support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1268
* Fixed incorrect url encoding for some characters (#1094)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1269
* Fixed hanging jetty server engine
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1270
1271
* Introduced CIO client engine request timeout config
* Added client multipart content length support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1272
1273
* Jetty upgraded to 9.4.15.v20190215
* okhttp client upgraded to 3.14.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1274
* Fixed CIO client CPU utilization issue
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1275
1276
* Kotlin 1.3.31
* kotlinx.coroutines 1.2.1
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1277

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
# 1.1.5
> Published 24 Apr 2019

* Minimized jetty core pool size and make it configurable (#1083)
* Servlet engine fixed to use servlet config instead of context (#1063)

# 1.1.4
> Published 13 Apr 2019

* Upgrade to Kotlin 1.3.30
* Upgrade coroutines to 1.2.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1290
# 1.1.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1291
> Published 21 Feb 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1292
1293
1294
1295

* Fixed NoSuchMethodError on Android (#927)
* Fixed upload file error on JS (#956)
* Fixed several encodings issues caused corrupted jsons and receive pipeline erros (#920, #787, #866)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1296
* Fixed curl connection errors reporting
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1297
1298
* Updated jackson dependency (#952)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1299
# 1.1.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1300
> Published 24 Jan 2019
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1301
1302

* Introduced native curl client engine (#479)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1303
* Added iosArm32 target (except curl)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
* Host and port route builders (#825)
* Fixed `host()` and `port()` functions to respect proxy (#834)
* Fixed classloading issue affecting hot-reload (#825)
* Fixed hanging CIO client (#800, #806)
* Added CIO client CBC support (#623, #560, #394)
* Upgraded JWKS/JWT (#856)
* Fixed server `MessageDigest` concurrent issues
* Introduced `NonceManager`, deprecated `OAuth2StateProvider`
* Prohibited setting session at server after responding the call (#864)
* Fixed loosing errors in `StatusPages` if there was already a response sent
* Introduced `application` property on `ApplicationEngine` interface
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1315
* Introduced experimental ktor server exceptions
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
  * `BadRequestException`
  * `NotFoundException`
  * `MissingRequestParameterException`
  * `ParameterConversionException`
  * supported in locations out of the box (including #767)
  * experimental parameters delegation support
* Added routing tailcard prefix support (#876, #526)
* Fixed registering content converters with custom content type pattern (#872)
* Improved GSON error diagnostics (#811)
* Exclude several content types in Compression feature by default: audio, video, event-stream (#817)
* Fixed hanging handleWebSocketConversation
* Fixed cookie session max-age value to be bumped to Int.MAX_VALUE (#892)
* Fixed CIO headers parsing: allowed headers with no values
* Fixed client websocket nonce size (#861)
* Fixed client scheme parsing
* Supported client relative redirects by making #takeFrom() resolve relative urls. (#849)
* Fixed network on main thread in CIO (#764)
* Changed the default algorithm to SHA-256 from SHA-1 for signed server cookies
* Fixed conflicting `WebSockets` and `StatusPages` (#889)
Leonid.Stashevsky's avatar
Leonid.Stashevsky включено в состав коммита
1335
* Update gradle to 4.10
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1336
* Kotlin 1.3.20, kotlinx.coroutines 1.1.1, kotlinx.serialization 0.10.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1337

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1338
1339
1340
# 1.1.1
> Published 26 Dec 2018

leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1341
* Fixed broken pom files
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1342

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1343
1344
1345
1346
1347
# 1.1.0
> Published 24 Dec 2018

* Reduced JDK7/8 dependencies (including #762)
* Discarded deprecated API
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1348
* Coroutines debug agent support
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
  * see Kotlin/kotlinx.coroutines/core/kotlinx-coroutines-debug/README.md
* Fixed `IndexOutOfBounds` during main module function search
* okhttp-client: pass `contentLength` for multipart form data
* Improved auto-reloading feature in corner-cases (#783)
* Fixed HTTP server upgrade to delay socket close (#674)
* Added Mustache templating feature (#713)
* Added ability to configure `Logger` instance for `CallLogging`
* Fixed session HMAC to do a constant time comparison
* Added Node.js suport for js http client (#791)
* `SessionTransportTransformerDigest` is deprecated (#792)
  * also switched to SHA-384 by default that is not vulnerable
* Fixed jetty server thread names (#756)
* Fix conditional headers zoned dates (#476)
* `NettyChannelInitializer` made public (#286)
* Fixed slf4j dependency (#808)
* Fixed client logging freeze
* Added client `DigestAuth` feature
* Fixed apache client response reading freeze
* Fixed apache client engine errors handling
* Kotlin 1.3.11, kotlinx.coroutines 1.1.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
# 1.0.1
> Published 4 Dec 2018

* Client logging feature (`Logging` in `ktor-client-logging`)
* Client user agent feature (see `UserAgent`)
* Client top-level list serialization support (#739)
* JS client body handling fix (#746)
* Client redirect edge cases fixed
* Client close/cancel handling improved
* CIO client bugfixes
* Unicode filenames support in multipart fileupload (#757, #687, #596)
* `ContentNegotiation` and `WebSocket` server features compatibility (#745)
* Server session cookie duration is optional (#736)
* Server autreload support fixed (#736)
* `CachingOptions` resolution ambiguity fixed (#741)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1386
# 1.0.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1387
> Published 19 Nov 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413

* Improved documentation
* Improved performance
* Kotlin 1.3.10
* kotlinx.coroutines 1.0.1 and structured concurrency support:
    * Coroutine scopes introduced per pipeline, call, application and web socket session
* Fixed client response cancelation via `receive<Unit>()` and `response.cancel()`
* Disabled client pipelining by default to provide safe behavior by default
* `GMTDate` improvements on js and native
* Added client response observer for response logging purpose
* Test client and mock engine improvements
* Cookies dates, domains and dupicate parameters processing fixed
* Server pipeline fixed to discard request body if not used (#609, #574)
* Websocket session lifecycle fixed during close sequence
* Several `Url` and `UrlBuilder` fixes and improvements
* Introduced `ExpectSuccess` client feature
* Fixed `StatusPages` to handle child job failures (#646)
* Compression bugfixes (including #708, #685)
* Fixed timeouts in websockets with Jetty
* Renamed `DevelopmentEngine` to `EngineMain`
* Restricted `@Location` annotation targets, allow on a typealias (#539)
* Removed default connector on port 80 (#670)
* Several JWT and OAuth bugfixes and error habdling improvements (#664, #676,  #550)
* Improved serialization client feature


Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
# 0.9.5
> Published 19 Sept 2018

* Added shorthand client functions for HEAD, OPTIONS, PATCH and DELETE methods (#562)
* URLBuilder's parser improved (#553, #567)
* Improved client's cookie matching and processing
* Introduced CallId feature
* Added MDC support to CallLogging feature
* Fixed setting charset encoding for non-text content types
* Added `respondOutputStream { }` response function
* Migrated to Kotlin 1.2.70
* Split Infrastructure phase into Monitoring and Features phases

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
# 0.9.4
> Published 29 Aug 2018

* Added multiplatform client support (android and ios)
* Added `Android` client engine (`UrlConnection`)
* Added `OkHttp` client engine (Android support)
* Added `Jackson` feature support
* Added `Ios` client engine
* Deprecated `response.contentType` and `response.contentLength`
* Strengthened `IncomingContent` deprecation
* Upgraded Jetty ALPN, Tomcat
* Fixed config evaluation issues (#488)
* Disabled async incoming upgrade stream at Tomcat
* Prohibited appending unsafe headers to request headers
* Renamed `XForwardedHeadersSupport` to `XForwardedHeaderSupport` (#547)
* Added `HttpResponse.receive<T>` method to run response pipeline on raw response
* Introduced kotlin multiplatform url-parser
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1444
* Supported client form data and multipart
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
* Added missing client builders for `post` and `put` methods
* Simplify client configuration API
* Fixed several compression issues
* Fixed client attributes evaluation
* Fixed CIO engine random algorithm selection
* Fixed url parsing (#511)
* Fixed ambiguity in writing client `Content-Type` and `Content-Length` headers
* Minor performance fixes
* Netty HTTP/2 fixes
* Fixed IOOBE in satic resource resolution (#493)
* Fixed JWT error handling
* Kotlin 1.2.61, kotlinx.coroutines 0.25.0

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1458
# 0.9.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1459
> Published 26 Jun 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1460
1461
1462
1463

* Improved WebSocket API
* Websocket header `Sec-WebSocket-Key` is now optional
* Fixed client cookies rendering to avoid `x-enc`
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1464
1465
1466
* Fixed plain text client reader (#392)
* Added EC support in CIO TLS (#394: ECDHE_RSA_AES256_SHA384, ECDHE_RSA_AES128_SHA256)
* Fix client certificate validation
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1467
* Introduced optional authentication
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1468
* Added `ApplicationCall` as receiver for auth `validate` functions
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1469
* Introduced `call.respondBytes` (#395)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1470
1471
1472
1473
1474
1475
* Improved JWT support: multiple schemes, nullable issuer
* Conversion service enum type diagnostics improved (#403)
* Avoided using apos entity in HTML escaping as IE doesn't support it (#400)
* Converter support for java big numbers
* Ability to add auth methods to existing feature on the fly
* Improved auth header scheme and contents validation (#415)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1476
* Default charset for BasicAuth is now UTF-8 (#420)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1477
1478
1479
1480
1481
1482
1483
* Added `ByteArrayContent.contentLength` (#421)
* Fixed `headersOf` case insensitive issue (#426)
* Client deserialization improved by using type token
* Ability to disable client default transformers
* Explicit `Accept` header in client request
* Turn on masking in client websockets (#423)
* Fixed inverted `PartialContent.Configuration.maxRangeCount` check (#440)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1484
* Fixed uncaught `UnsupportedMediaTypeException` from `receiveOrNull()` (#442)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1485
* Fix multipart boundary header parsing
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1486
* Upgraded jwks/jwt, applied RSA256 by default if unspecified (#434, #435)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
1487
1488
1489
1490
1491
1492
1493
* Upgrade coroutine version to 0.23.3
* Upgrade Jetty version to 9.4.11.v20180605
* Add `client-mock-engine` for testing purpose
* Use default available engine by deafult
* Upgrade kotlin to 1.2.50

Move ktor-samples to a separate repository (#340). https://github.com/ktorio/ktor-samples
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1494

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1495
# 0.9.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1496
> Published 23 Apr 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524

* New auth DSL, more suspendable functions (such as `verify`/`validate`)
* `RoutingResolveTrace` for introspecting routing resolution process
* HTTP client improvements and bugfixes (DSL, reconnect, redirect, cookies, websockets and more)
* CIO http client pipelining support, chunked and more
* CIO initial TLS support
* Session authentication provider
* OAuth2: introduce ability to generate and verify state field
* OAuth: fix scopes parameter to conform to RFC (#329)
* OAuth2: fix bug with double scopes encoding (#370)
* OAuth2: add ability to intercept redirect URL
* CORS: introduce `allowSameOrigin` option
* Auth: provide application call as receiver for validate functions (#375 and related)
* Test host reworked, `handleRequest` reads the body and redirects the exceptions correctly
* Servlets: fixed `inputStream` acquisition, fixed error handling
* Java 9 compatibility improved (no modules yet)
* Digest auth fixes (#380)
* Log running connectors details for better development experience (#318)
* `Last-Modified` header and related functionality to work in proper GMT time zone (#344)
* `IncomingContent` is deprecated
* `URLBuilder` fixes and improvements
* Documentation improvements
* Performance optimizations (Netty, CIO server backends)
* CIO server improved stability
* Encrypted session support (`SessionTransportTransformerEncrypt`)
* Empty (`null`) model for freemarker (#291)
* `ContentNegotiation` missing `Accept` header support (#317)

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1525
1526
1527
# 0.9.1
> Published 29 Jan 2018

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1528
* Support for blocking servlets and GAE
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1529
1530
1531
1532
* `Headers` and `Parameters` types instead of `ValuesMap`
* Velocity templates support
* Unsafe (Forbidden) headers checks added
* Deprecated `Resource` type
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1533
* Added support for extensible version providers to ConditionalHeaders feature
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1534
1535
1536
1537
1538
1539
* Engine-specific configuration support for application.conf
* Added filtering and customisation of log level to CallLogging feature
* Added ability to skip authentication using a predicate, add documentation to Authentication feature
* Introduced auth0 JWT/JWKS authentication (#266)
* ktor http client DSL improvements
* CIO engine improvements, stability and performance
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1540
* Introduced [OutgoingContent] properties `contentLength`, `contentType` and `status`
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1541
1542
1543
1544
1545
* Upgrade Netty in the corresponding engine implementation
* Introduced `shareWorkGroup` option for Netty engine
* More documentation
* Bump versions of dependencies

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1546
# 0.9.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1547
> Published 31 Oct 2017
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1548
1549
1550

* Package structure reworked
* Packages and maven groupId renamed org.jetbrains.ktor -> io.ktor
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1551
* Server-related artifacts having ktor-server-* name prefix (ktor-netty -> ktor-server-netty)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1552
* Application Host renamed to Application Engine
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1553
1554
1555
1556
1557
* FinalContent renamed to OutgoingContent as opposite to IncomingContent (introduced in 0.4.0)
* Added Application Engine configure facilities so one can specify thread pool size or some engine-specific parameter
* Initial idiomatic ktor HTTP client implementation (artifacts prefixed with ktor-client-*)
* Metrics support, DropWizard integration
* Improve routing API, tune resolution mechanics, hide some implementation details
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1558
* ContentNegotiation feature to support variable content on send and receive
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1559
1560
1561
* Jackson support
* Experimental pure kotlin application engine on coroutines (CIOApplicationEngine) and CIO-based http client backend
* Improved stability under load
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1562
* Status pages processing improvements
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1563
1564
* A lot of documentation

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1565
# 0.4.0
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1566
> Published 16 Aug 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1567

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1568
* Built with Kotlin 1.1.4
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1569
* Refactored receive/response pipelines and moved them into respective ApplicationRequest & ApplicationResponse classes
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1570
* Fixes, improvements and integration tests for HTTP/2 support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1571
1572
* Update `ContentType` to treat all parts case insensitively
* Remove `ApplicationLog` and use SLF4J `Logger` directly
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1573
1574
1575
* Add HttpMethod.Patch and respective builder functions
* `routing` function will now install `Routing` feature or use existing installed feature for easier modules
* Convert sessions to proper feature, support multiple sessions, improve DSL
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1576
* HeadRequestSupport feature is renamed to AutoHeadResponse (with deprecated typealias)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1577
1578
1579
1580
* Replace ApplicationTransform with receive pipeline
* Introduce send/receive pipelines for all call pipelines
* Gson application feature for JSON transformation of incoming & outgoing data objects
* Added HttpBin sample (thanks to @jmfayard)
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1581
* Employ `DslMarker` annotation to prevent accidental use of route functions in get/post handlers
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1582
* Improve diagnostics for untransformed content
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1583
* Ensure missing file (`FileNotFoundException`) can be handled properly with `StatusPages` feature
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1584
* Websocket fixes for large frames, fragmentation and more
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1585
1586
1587
1588
* Support for specifying config file with command line
* Improvements in Servlet-based hosts
* Memory allocation and performance optimisations
* Add Apache 2 LICENSE file
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1589
1590
1591
* Add documentation to some types
* New sample for static content
* Bump versions of dependencies
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1592

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1593
# 0.3.3
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1594
> Published 22 Jun 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1595
1596
1597
1598

* Execution model slightly changed to avoid global executors. ApplicationEnvironment doesn't provide `executor` anymore
* Websockets refactored with channels instead of callback functions
* Fixed bug with compression not preserving status code (thanks Diego Rocha)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1599
1600
* Fixes in Netty support: performance issues under heavy load and keep-alive connections, cancellation, closed sockets
* Fixes in session serialization, enums support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1601
1602
1603
* Optimisations in Servlet and Jetty hosts, fixes in edge cases
* Fixes in chat sample

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1604
# 0.3.2
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1605
> Published 24 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1606
1607
1608

* Fix bug in byte array response that missed Content-Length header
* Fix default encoding in FreeMarker to be UTF-8
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1609
1610
1611
* Fix FreeMarker writer
* Fix charset for text/* content types to be UTF-8 by default
* Fix Kweet sample application in kweet deletion
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1612
* Fix form authentication to adhere to removal of post parameters from `parameters`
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1613
1614
1615
1616
1617
1618
1619
* Rework static content DSL to improve usability
* Improve Accept header handling in routes
* Support local class in locations, improve diagnostics
* Add servlet host tests running in Jetty, but using servlet deployment model
* Benchmarks can now measure GC performance (and any other JMH profiler)
* Performance optimisations

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1620

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1621
# 0.3.1
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1622
> Published 7 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1623
1624
1625
1626
1627
1628

* Replace routing function `contentType` with `accept`
* Major refactoring in internal host system to simplify and unify code
  * Use `embeddedServer(Netty, …)` instead of `embeddedNettyServer(…)`
  * Support automatic reloading in embedded hosts
  * Fix ApplicationTransform problems preventing Freemarker templates from working
leonid.stashevsky's avatar
leonid.stashevsky включено в состав коммита
1629
* Fix json and logback dependencies to avoid propagating to clients
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1630
1631
1632
1633
* Bug fixes & performance optimisations
* Documentation

# 0.3.0
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1634
> Published 8 Mar 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
1635

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1636
* Major refactor to coroutines
Для ускорения просмотра не вся история отображается Просмотреть всю вину