CHANGELOG.md 13,0 КБ
Newer Older
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 1.1.0
> Published 24 Dec 2018

* Reduced JDK7/8 dependencies (including #762)
* Discarded deprecated API
* Coroutines debug agent support 
  * 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 включено в состав коммита
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 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 включено в состав коммита
44
# 1.0.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
45
> Published 19 Nov 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

* 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 включено в состав коммита
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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 включено в состав коммита
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# 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
* Supported client form data and multipart 
* 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 включено в состав коммита
116
# 0.9.3
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
117
> Published 26 Jun 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
118
119
120
121

* 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 включено в состав коммита
122
123
124
* 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
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
125
* Introduced optional authentication 
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
126
* Added `ApplicationCall` as receiver for auth `validate` functions
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
127
* Introduced `call.respondBytes` (#395)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
128
129
130
131
132
133
134
135
136
137
138
139
140
141
* 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)
* Default charset for BasicAuth is now UTF-8 (#420) 
* 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 включено в состав коммита
142
* Fixed uncaught `UnsupportedMediaTypeException` from `receiveOrNull()` (#442)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
143
* Fix multipart boundary header parsing
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
144
* Upgraded jwks/jwt, applied RSA256 by default if unspecified (#434, #435)
Leonid Stashevsky's avatar
Leonid Stashevsky включено в состав коммита
145
146
147
148
149
150
151
* 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 включено в состав коммита
152

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
153
# 0.9.2
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
154
> Published 23 Apr 2018
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182

* 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 включено в состав коммита
183
184
185
# 0.9.1
> Published 29 Jan 2018

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
186
* Support for blocking servlets and GAE
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
* `Headers` and `Parameters` types instead of `ValuesMap`
* Velocity templates support
* Unsafe (Forbidden) headers checks added
* Deprecated `Resource` type
* Added support for extensible version providers to ConditionalHeaders feature 
* 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
* Introduced [OutgoingContent] properties `contentLength`, `contentType` and `status` 
* 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 включено в состав коммита
204
# 0.9.0
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
205
> Published 31 Oct 2017
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
206
207
208

* Package structure reworked
* Packages and maven groupId renamed org.jetbrains.ktor -> io.ktor
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
209
* Server-related artifacts having ktor-server-* name prefix (ktor-netty -> ktor-server-netty)
Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
210
211
212
213
214
215
216
217
218
219
220
221
222
* Application Host renamed to Application Engine  
* 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
* ContentNegotiation feature to support variable content on send and receive 
* Jackson support
* Experimental pure kotlin application engine on coroutines (CIOApplicationEngine) and CIO-based http client backend
* Improved stability under load
* Status pages processing improvements 
* A lot of documentation

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

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
226
* Built with Kotlin 1.1.4
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
227
* Refactored receive/response pipelines and moved them into respective ApplicationRequest & ApplicationResponse classes 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
228
* Fixes, improvements and integration tests for HTTP/2 support
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
229
230
* Update `ContentType` to treat all parts case insensitively
* Remove `ApplicationLog` and use SLF4J `Logger` directly
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
231
* Add HttpMethod.Patch and respective builder functions 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
232
* `routing` function will now install `Routing` feature or use existing installed feature for easier modules 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
233
* Convert sessions to proper feature, support multiple sessions, improve DSL 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
234
* HeadRequestSupport feature is renamed to AutoHeadResponse (with deprecated typealias)
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
235
236
237
238
239
240
241
* 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)
* Employ `DslMarker` annotation to prevent accidental use of route functions in get/post handlers 
* Improve diagnostics for untransformed content
* Ensure missing file (`FileNotFoundException`) can be handled properly with `StatusPages` feature 
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
242
* Websocket fixes for large frames, fragmentation and more
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
243
244
245
246
* 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 включено в состав коммита
247
248
249
* Add documentation to some types
* New sample for static content
* Bump versions of dependencies
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
250

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
251
# 0.3.3
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
252
> Published 22 Jun 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
253
254
255
256

* 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 включено в состав коммита
257
258
* 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 включено в состав коммита
259
260
261
* Optimisations in Servlet and Jetty hosts, fixes in edge cases
* Fixes in chat sample

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
262
# 0.3.2
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
263
> Published 24 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
264
265
266

* 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 включено в состав коммита
267
268
269
* 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 включено в состав коммита
270
* Fix form authentication to adhere to removal of post parameters from `parameters`
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
271
272
273
274
275
276
277
* 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 включено в состав коммита
278

Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
279
# 0.3.1
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
280
> Published 7 Apr 2017
Ilya Ryzhenkov's avatar
Ilya Ryzhenkov включено в состав коммита
281
282
283
284
285
286
287
288
289
290
291

* 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
* Fix json and logback dependencies to avoid propagating to clients 
* Bug fixes & performance optimisations
* Documentation

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

Sergey Mashkov's avatar
Sergey Mashkov включено в состав коммита
294
* Major refactor to coroutines