Releases: ktorio/ktor
Releases · ktorio/ktor
1.1.3
1.1.2
Published 24 Jan 2019
- Introduced native curl client engine (#479)
- Added iosArm32 target (except curl)
- Host and port route builders (#825)
- Fixed
host()
andport()
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
, deprecatedOAuth2StateProvider
- 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 onApplicationEngine
interface - Introduced experimental ktor server exceptions
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
andStatusPages
(#889) - Update gradle to 4.10
- Kotlin 1.3.20, kotlinx.coroutines 1.1.1, kotlinx.serialization 0.10.0
1.1.1
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 forCallLogging
- 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
1.0.1
Published 4 Dec 2018
- Client logging feature (
Logging
inktor-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
andWebSocket
server features compatibility (#745)- Server session cookie duration is optional (#736)
- Server autreload support fixed (#736)
CachingOptions
resolution ambiguity fixed (#741)
1.0.0
- 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>()
andresponse.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
andUrlBuilder
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
toEngineMain
- 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
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
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
andresponse.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
toXForwardedHeaderSupport
(#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
andput
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
andContent-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
Migration from 0.9.3 -> 0.9.4 http://ktor.io/quickstart/migration/0.9.4.html
0.9.3
0.9.3
Published 26 Jun 2018
- Improved WebSocket API
- Websocket header
Sec-WebSocket-Key
is now optional - Fixed client cookies rendering to avoid
x-enc
- 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
- Introduced optional authentication
- Added
ApplicationCall
as receiver for authvalidate
functions - Introduced
call.respondBytes
(#395) - 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) - Fixed uncaught
UnsupportedMediaTypeException
fromreceiveOrNull()
(#442) - Fix multipart boundary header parsing
- Upgraded jwks/jwt, applied RSA256 by default if unspecified (#434, #435)
- 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
0.9.2
Published 23 Apr 2018
- 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 deprecatedURLBuilder
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
missingAccept
header support (#317)