Ktor Versions Save

Framework for quickly creating connected applications in Kotlin with minimal effort

2.1.1

1 year ago

Published 6 September 2022

  • CIO: responses are received with a huge delay on JVM Windows (due to reverse DNS lookup internally) (KTOR-4827)
  • Netty HTTP/2 not working (KTOR-578)
  • HTTP/2 push fails with Netty engine (KTOR-800)
  • HttpCookies: no space between cookie pairs (KTOR-3854)
  • Netty ALPN provider detection not working (KTOR-4712)
  • CIO: Connection reset by peer on MacOS (KTOR-2036)
  • CallLogging MDC with sessions: Application feature Sessions is not installed (KTOR-550)
  • Deprecate Public API with Atomicfu Declarations (KTOR-4774)
  • Deprecate receiveOrNull because it's confusing (KTOR-4772)
  • Server ContentNegotiation Plugin doesn't check ignoredTypes for Request Body (KTOR-4770)
  • IllegalArgumentException is thrown when UnixSocketAddress.path is accessed on JVM (JDK 16+) (KTOR-4695)
  • WebSocketDeflateExtension not following RFC (KTOR-4696)
  • The parseWebSocketExtensions function behaves incorrectly (KTOR-3189)
  • Receive non-Nullable Type Throws NPE in Case of Failure (KTOR-4771)
  • Darwin: Symbol not found: OBJC_CLASS$_NSURLSessionWebSocketMessage on iOS 12 (KTOR-4159)
  • Fix Merging Date Headers on the Client (KTOR-4782)
  • Replace exception in InputStreamAdapter and OutputStreamAdapter constructors with warning message If parking (KTOR-4736)
  • Clearing Session Cookie in Chrome 80+ with SameSite and Secure (KTOR-437)
  • The OutgoingContent.toByteArray() stalls when used in combination with a OutgoingContent.WriteChannelContent (KTOR-2126)
  • Missing Content-Type header in a request (KTOR-1407)
  • Crash when making requests from browser inside of web worker (KTOR-4715)
  • An error occurs when there is a binary such as protobuf in the response body of error (KTOR-1619)
  • CallLogging configured MDC entries are not passed to StatusPages exception handlers (KTOR-4193)
  • LocalFileContent incorrectly relies on the last modification time of a file to check its existence (KTOR-4707)
  • Sessions: WSS in combination with Secure cookies throws IllegalArgumentException (KTOR-4697)
  • Json request failure with configured form authentication (KTOR-678)

2.1.0

1 year ago

Published 11 August 2022

  • Add YAML Configuration Format Support (KTOR-3572)
  • Allow overriding HSTS settings per host (KTOR-4578)
  • CORS: Pattern matching for origin (KTOR-316)
  • Darwin: Allow setting custom NSURLSession (KTOR-583)
  • Support setting caching options on call (KTOR-457)
  • Revert default behavior of string encoding for ContentNegotiation and JsonPlugin (KTOR-4739)
  • Make Content-Length header validation optional (KTOR-4655)
  • Client resources plugin miss builders for PATCH method (KTOR-4658)
  • The awaitSuspend method wakes up early in closed ByteChannelSequential (KTOR-4597)
  • HttpCache plugin does not support max-stale directive (KTOR-4610)
  • Incoming request body validation (KTOR-503)
  • Client does not support sending or receiving json null value (KTOR-745)
  • Jetty: Content Length exception when body size is greater than 4096 bytes (KTOR-4622)
  • Darwin: configureRequest doesn't actually configure a NSMutableURLRequest when HTTP request is made (KTOR-4719)
  • OAuth2: Allow sending extra parameters for authorization and access token requests (KTOR-2128)
  • Java engine: Allow configuring HTTP version (KTOR-4609)
  • ContentEncoding: body<ByteArray>() receives truncated array (KTOR-4653)
  • Support configuring Netty codec limits via application config (KTOR-4636)
  • [OkHttp] StreamRequestBody should override isOneShot or allow multiple reads of request body (KTOR-4637)
  • OverridingClassLoader fails to delegate to parent for resources (KTOR-4004)
  • OkHttp and iOS: request with only-if-cache directive in Cache-Control header fails with 504 when match is stale (KTOR-4127)
  • Allow Pebble to use Accepted Language header for built-in i18n support (KTOR-4593)
  • Test engine can't handle concurrent requests (KTOR-4572)
  • Parameters of cloned UrlBuilder affect parameters of an original builder (KTOR-4573)
  • Reified type causes ApplicationCall.receive() throw UnsupportedOperationException (KTOR-3715)
  • ApplicationConfig lacks the ability to export a part of the config to a third-party library (KTOR-4416)
  • Path parameter doesn't get encoded in type safe requests (KTOR-3953)
  • Update Kotlin to 1.7.0 (KTOR-4450)
  • Bump jteVersion from 2.0.3 to 2.1.2 (KTOR-4648)

2.0.3

1 year ago

Published 28 June 2022

  • Development mode class loader leads to ClassCastException within a CouroutineScope (KTOR-4164)
  • Validate that the body of an incoming request is received completely (KTOR-4379)
  • UrlBuilder escapes fragment parameters (KTOR-4412)
  • CallLogging: JVM crashes when jansi checks whether a file descriptor refers to a terminal (KTOR-3476)
  • WebSocket client closes connection due to an HTTP request timeout (KTOR-4419)
  • [JS client] Cannot change redirect policy by followRedirects=false (KTOR-326)
  • CIO engine doesn't apply a request timeout from the HttpTimeout plugin (KTOR-4473)
  • CIO: Websockets request doesn't include query parameters (KTOR-4390)
  • Ignore SIGPIPE for server sockets (KTOR-4474)
  • Direct byte buffers are increased in size when server slowly processes request (KTOR-4397)
  • UDP responses are received with a huge delay on JVM Windows (due to reverse DNS lookup internally) (KTOR-4423)
  • "No instance for key AttributeKey: ApplicationPluginRegistry" when exception is thrown during the Call phase (KTOR-4448)
  • Non-decipherable exception "No result transformation found" (KTOR-4287)
  • Unable to set the Content-Type header in a request (KTOR-620)
  • Update kotlinx.coroutines to 1.6.2 (KTOR-4451)
  • Support the HttpTimeout capability in the DelegatingTestClientEngine (KTOR-4436)
  • Limit the number of parallel running requests in Netty (KTOR-4575)
  • Resources plugin fails to process parameters of type UShort (KTOR-4424)
  • Resources plugin doesn't respect default values for Enum (KTOR-4411)
  • Invalid request line produced by CIO engine for URL with parameters and without path (KTOR-4347)
  • call.receiveText() tries to parse body as JSON when the ContentNegotiation plugin is installed (KTOR-4426)
  • Ignore ByteReadChannel as receive type in ContentNegotiation (KTOR-4511)
  • Setting body to TextContent leads to NPE when the ContentNegotiation plugin is installed (KTOR-4383)
  • submitFormWithBinaryData call leads to NPE when the ContentNegotiation plugin is installed (KTOR-4269)
  • ResponseConverter NPE when returning ByteArray with the ContentNegotiation plugin (KTOR-4399)

2.0.2

2 years ago

Published 27 May 2022

  • [iOS] Prevent HttpClient from persisting cookies across requests (KTOR-3748)
  • Web feedback from "Creating HTTP APIs", https://ktor.io/docs/creating-http-apis.html (KTOR-4380)
  • When returning a String, content negotiation is ignored (KTOR-662)
  • HttpResponse.bodyAsChannel should not be converted by ContentNegotiation (KTOR-4341)
  • Strings are not decoded when received as application/json (KTOR-385)
  • Document how to enable/disable HTTP/2 for different client engines (KTOR-4340)
  • Revert Dokka to 1.6.10 due to Publication Freeze (KTOR-4290)
  • Document a new memory model in KMM tutorial (KTOR-4354)
  • Make client docs less JVM-centric (KTOR-4351)
  • Darwin engine: Client connection is closed after each request (KTOR-4145)
  • Ios: NullPointerException when query parameters contain cyrillic symbols in values (KTOR-1858)
  • A native application with the Darwin engine doesn't make a request (KTOR-3900)
  • Darwin and Kotlin/JS: "List has more than one element" error when header like Content-type is duplicated in a response (KTOR-4105)
  • Invalid response without error (KTOR-369)
  • Invalid HTTP version should fail (KTOR-380)
  • The colon after the host parameter requires a port (KTOR-382)
  • Kotlin/Native: testApplication's client sometimes fails to receive ByteArray response from a route (KTOR-4197)
  • "Application started" is never printed (KTOR-4319)
  • Default request without explicit port sets port 80 for all requests (KTOR-4281)
  • Documentation about how to configure libcurl on Windows (KTOR-3988)
  • API Docs reference RFCs. Better to reference our own documentation (KTOR-3764)
  • UninitializedPropertyAccessException in the handleResponseExceptionWithRequest when request or response are accessed through (KTOR-4230)HttpClientCall
  • The original exception is swallowed by "No request transformation found" exception when request body is serializable object (KTOR-4160)
  • IncorrectDereferenceException when trying to create HttpClient from background thread on iOS (KTOR-4263)
  • JacksonWebsocketContentConverter.deserialize just doesn't work (KTOR-4248)
  • Documentation for migration of Authentication server plugin (KTOR-4253)
  • Add sample for the AuthenticationChecked hook (KTOR-4278)
  • Web feedback from "Docker", https://ktor.io/docs/docker.html (KTOR-4282)
  • Route's path parameters are empty when ApplicationCall.authentication is first accessed in a different ApplicationCall context (KTOR-4250)
  • Routes with tailcard should not count for specific http error codes (KTOR-4280)
  • Documentation for appending query parameters for URL in the DefaultRequest (KTOR-4252)
  • Routing returns 405 even for not completely matched paths (KTOR-4267)
  • Resources: builder methods return routes with PathSegmentConstantRouteSelector instead of HttpMethodRouteSelector (KTOR-4239)
  • Update Netty to 4.1.77.Final (KTOR-4339)
  • External services should use config from environment (KTOR-4373)
  • Update Jackson to 2.13.3 (KTOR-4394)

2.0.1

2 years ago

2.0.1

Published 28 April 2022

  • Fix URL representation (KTOR-4241)
  • embeddedServer for CIO and Netty inconsistency (KTOR-755)
  • Update Coroutines to 1.6.1 (KTOR-4240)
  • Locations: Support trailing / (KTOR-836)
  • Resources: Make Route.handle public (KTOR-4200)
  • Fix CURL flaky initialization (KTOR-4223)
  • Optimize Slow Native Tests (KTOR-4224)
  • Print Native Stacktrace on Timeout (KTOR-4198)
  • """IllegalStateException: Operation is already in progress"" when the readByte is called the second time after a timeout" (KTOR-4218)
  • Update Kotlin to 1.6.21 (KTOR-4221)
  • Update code for editing an article in the 'Interactive website' tutorial (KTOR-4227)
  • DefaultRequest: HTTPS protocol isn't set when using Ktor 2.0.0 (KTOR-4142)
  • DefaultRequest: host and port aren't used for a request (KTOR-4154)
  • A table with test methods should span the entire width of the dialog (KTOR-4064)
  • StatusPages plugin does not handle most specific exception in Ktor 2.0.0 (KTOR-4187)
  • Behaviour of ApplicationEngine start method not documented properly (KTOR-2271)
  • CORS plugin should be route scoped (KTOR-4157)
  • Raw Web Socket Connection Suspending Forever (KTOR-4166)
  • StatusPages: SerializationException isn't handled when CallID plugin is installed after StatusPages plugin (KTOR-4155)
  • HttpClient.wss defaults to port 80 instead of 443 (KTOR-4175)
  • Missing subject parameter in StatusPages status config method (KTOR-4191)
  • ConditionalHeaders cause the Last-Modified header appears twice in a response (2.0.0) (KTOR-4163)
  • DefaultHeaders: The Server header appears twice in a response (2.0.0) (KTOR-4152)
  • Testing: Resolving a substitution to a value in default config fails when custom HOCON config is used (KTOR-4130)
  • Combination of HttpCache and Logging plugins cause receiving incomplete response body for chunked replies (KTOR-3916)

2.0.0

2 years ago
  • Fix dokka version catalog generation
  • Update API docs for all plugins
  • Cleanup after migrating to version catalog
  • Update Kotlin to 1.6.20
  • Keep original content type when no registrations match
  • Fix body logging mixed with different request
  • Fix CIO client timeout
  • Migrate to version catalog
  • Support WebSockets in Darwin engine
  • Fix freeze with WriteChannelContent in test client
  • Use request timeout instead of socket timeout in Java client
  • Fix selector manager
  • Fix InvalidPathException in ApplicationEngineEnvironmentReloading.kt
  • Add native html builder support
  • Allow overriding dispatcher in MockEngine
  • Fix freeze in response observer
  • Fix allocation issues
  • CIO Native WebSockets
  • Change HttpClientCall fields visibility
  • Adjust CORS configuration names
  • Fix Deflater leak
  • Move ApplicationCallPlugin to companion object
  • Fix OAuth scopes encoded to %2B
  • Add more KtorDsl annotations
  • CORS allowHeadersPrefixed should ignore case
  • Remove mutex from call logging
  • Reuse most useful hooks
  • Use secure random for nonce generation
  • SinglePageApplication plugin returns 404 for non-existent paths
  • The "charset=UTF-8" part is added for the Content-Type header
  • Add jte template support
  • Fix contextual serializer with kotlinx
  • Add isNotEmpty() and size methods to PlaceholderList
  • Add call to CachingHeadersConfig.options callback
  • Fix MDC context in client response body logging
  • Rewrite Netty Engine
  • Add links to a migration guide
  • Bump actions/checkout from 2 to 3
  • Break infinite refresh token cycle on 401
  • Use conditional headers from response
  • Ktor client content encoding: do not decode empty body
  • Clarify the selector problem in the exception message
  • Introduce BaseApplicationPlugin
  • Introduce file cache; Prevent blocking when receiving conte…
  • handleResponseException should have access to request to provide valuable information in exceptions
  • Rename the 'io.ktor.resources.serialisation' package to '...serialization' for consistency
  • Bump micrometer-core from 1.7.5 to 1.8.3
  • Update slf4j to 1.7.36
  • Update node_fetch_version to 2.6.7, remove kotlin-js-store/yarn.lock from .gitignore
  • Replace specify pattern for JSON.stringify
  • Drop obsolete dependency; cleanup configuration
  • Clean up of the plugins API
  • Handle any generic failures in CIO and debugger flag
  • Migrate rest of the plugins
  • Clarify exception message
  • multipart/form-data requests: No way of streaming data asynchronously
  • Convert (X)ForwardedHeader to new API and rename plugin
  • Drop ApplicationReceiveRequest
  • Fixes invalidating cookies cache on every request
  • Support query and fragment in default request
  • Drop before and after from new plugins API
  • Add HTTPS Connector to TestApplicationEngine
  • Remove explicit JVM 8 target
  • Add auth from single provider if no WWW-Auth header is present
  • Support streaming of body in curl
  • Use global DslMarker
  • Fix SPA javadoc
  • Rewrite CallLogging, PartialContent, HttpsRedirect, WebJars, Metrics, CallId, ConditionalHeaders, Compression, Auto Head, DoubleReceive, Auth, FreeMarker, CORS, HSTS, ContentNegotiation, Sessions, XHttpMethodOverride, DefaultHeaders, Thymeleaf to new plugins API
  • Fix SinglePageApplicationTest
  • Remove single page plugin from ktor-server
  • Fix SinglePageApplicationTest after rebase
  • Support routing scoped plugins in hooks
  • Add Single Page Plugin
  • Bump metrics-core from 4.2.6 to 4.2.8
  • Bump metrics-jvm from 4.2.4 to 4.2.8
  • Drop ExperimentalTime
  • Status pages Fixes
  • Use UTF-8 as default charset for text and forms
  • Delete jvmAndNix in ktor-server
  • Update slf4j to 1.7.35
  • Fix NoClassDefFoundError on android in debugger detector
  • Disable response validation by default
  • Migrate server plugins to multiplatform
  • Flush unread bytes after readAvailable
  • Remove unnecessary command from Linux CONTRIBUTING.md setup instructions
  • Drop headerSizeHint
  • Update logback to 1.2.10
  • Fix routing is called for handled requests
  • Drop old native memory model
  • Add apiDump for DefaultHeader plugin changes
  • Fix webSocketSession method suspends indefinitely on connection error
  • Add defaults to stop method
  • Change version to snapshot
  • Fix double slash when appending segments
  • Support java modules
  • Retry-after header value should be in seconds
  • Fixed appendIfNameAbsent and appendIfNameAndValueAbsent
  • Fix receiving streaming body breaks client
  • Fix sockets on Android
  • Use DEFAULT_COMPRESSION for java.util.zip.Deflater
  • Fix binary compatibility with jdk8
  • Fix curl configuration
  • Update Dokka to 1.6.10 and remove ZipException workaround for JS files
  • Returning Thymeleaf fragments from Routes
  • Add protocol support to testApplication
  • Add option to choose value for X-Forwarded-* and Forwarded headers

1.6.8

2 years ago
  • Update Gradle to 7.4
  • Update Kotlin to 1.6.10
  • Migrate gradle to version catalog
  • Update logback version to 1.2.11 (KTOR-3935)
  • Update atomicfu to 0.17.1
  • Update netty to 4.1.74.Final
  • Update netty-tcnative to 2.0.45.Final
  • Update jetty to 9.4.45.v20220203
  • Update tomcat to 9.0.59
  • Update apache to 4.1.5
  • Update okhttp to 4.9.3
  • Update gson to 2.9.0
  • Update jackson 2.13.1
  • Update slf4j to 1.7.36
  • Update node-fetch to 2.6.7
  • Update js ws package to 8.5.0
  • Revert wrong check to prevent anyHost with allowCredentials (KTOR-2872)

2.0.0-beta-1

2 years ago
  • EAP Naming: main-number conflicts with dependencies (KTOR-2724)
  • ktor.io/learn typo (KTOR-3563)
  • Multiple messages around upgrading to new version (KTOR-3494)
  • Deploy Ktor application to docker topic contains hard coded project name (KTOR-2852)
  • Improvements for Docker sample in documentation (KTOR-3294)
  • "io.ktor.serializaion.gson" - package naming in 2.0 (KTOR-3527)
  • Drop client.get Operator Because of Ambiguity with get(URL) (KTOR-3487)
  • Option "Add imports for Ktor modules automatically" doesn't work (KTOR-3226)
  • Migrations are unavailable (KTOR-3570)
  • AttributeKey instance is identified by its identity instead of its name (KTOR-3538)
  • Fix Log Size for Java 11 Windows Build (KTOR-3535)
  • ByteChannelSequential freezes after closing due to race condition (KTOR-2776)
  • Apple Arm: 'Resolving NPM dependencies using yarn' returns 139 (KTOR-3561)
  • Change log level from INFO to ERROR for tests only (KTOR-3466)
  • Responding without contentLength freezes on CIO native (KTOR-3492)
  • webSocketSession freeze every time (KTOR-3460)
  • Exceptions are Swallowed in HttpClient.wss block (KTOR-3461)
  • Support receiving headers before sending body in CIO client engine (KTOR-3491)
  • [netty] Headers are only flushed after first byte is written (KTOR-3364)
  • Fix testErrorHandling with JS (KTOR-3510)
  • Build and test on Apple Silicon Arm (KTOR-3248)
  • Fix old metadata publication (KTOR-3469)
  • Remove checking body transformation from ContentNegotation (KTOR-3272)
  • Ktor-Utils references a Java API not supported by Android (KTOR-3426)
  • With test application should load environment from the application.conf (KTOR-2794)
  • Inconsistent TestApplicationRequest and Client HttpRequestBuilder API's (KTOR-1246)
  • Server features instead of client in the client install block (KTOR-3412)
  • Using proguard and CallLogging feature causes JVM crashes (KTOR-3345)
  • ContentNegotiation is missing in the plugins completion window (KTOR-3411)
  • Code Snippets use Groovy in build files as opposed to default Kotlin option for Wizard (KTOR-2190)
  • IJ locked after attempt to create new run config in a dialog (KTOR-3385)
  • ContentNegotiation plugins don't accept null-responses from ContentConverts (KTOR-3346)
  • High CPU consumption/Lock after project opening in org.jetbrains.kotlin.storage.getValue ; org.jetbrains.kotlin.idea.caches.resolve.IdeaResolverForProject (KTOR-3337)
  • Update Ktor Plugin Description (KTOR-3388)
  • Project Generated with eap-256 has Errors in Imports (KTOR-3397)
  • Update non-generic samples to 2.0 (KTOR-3285)
  • Simplify plugin descriptions in wizard, remove empty options (KTOR-3386)
  • Bearer Authentication: Queue requests until refresh of tokens is completed (KTOR-3325)
  • Article about storing sensitive data and accessing it in application.conf (KTOR-3340)
  • Android: Failed resolution of: Ljava/nio/file/Paths using API 25 and lower (KTOR-3269)
  • IDE action to migrate to 2.0.0 (KTOR-3225)
  • Passing port 0 to start server on random port doesn't publish correct port to log (KTOR-3288)
  • XForwardedHeaderSupport is installed late in the pipeline (KTOR-731)
  • Error in 2.0 doc/sample for HttpClient retry (KTOR-3303)
  • Cyclic dependency issue in latest 2.0 (main branch) (KTOR-3240)
  • An error occurred when running a sample with the configured XML serializer (KTOR-3286)
  • respondOutputStream behind nginx fails (KTOR-346)
  • ProxyConfig.type checking for DIRECT instead of SOCKS (KTOR-1733)
  • Freeze the screen when I create routes (KTOR-3004)
  • httpMethod is not affected by X-Http-Method-Override (in opposite to docs) (KTOR-404)
  • Client: DefaultRequest apply defaults before request builder (KTOR-2877)
  • KDoc: HttpRequestBuilder.header actually appends header value, does not set it (KTOR-2492)
  • TLS relared tests are failing on CI (KTOR-3224)
  • Jackson: receiveOrNull crashes with an exception when sending empty content (KTOR-727)
  • Content Negotiation: Gson: Should be able to return 400 for badly formatted request. (KTOR-373)
  • Jackson-backed ApplicationCall.receive does not throw ContentTransformationException (KTOR-614)
  • Remove Obsolete Check Cast from SuspendFunctionGun (KTOR-3178)
  • Support 2.0.0 in IDE (KTOR-3196)
  • Client HttpCache feature is not documented (KTOR-1279)
  • Update server dependencies and imports in docs for 2.0.0 (KTOR-3150)
  • Prioritize text found in feature titles over descriptions (KTOR-2488)
  • SerializationException when serializing request body object of generic class type (KTOR-1019)
  • The 'Create test for Ktor module' intention actions changes files from other modules for a multimodule Gradle project (KTOR-3062)
  • Wizard Plugin listing strange link (KTOR-2882)
  • Nothing happens when no test routes is selected when generating Ktor test for module (KTOR-3095)
  • The 'Create test for Ktor module' intention action doesn't create any tests if routes are defined inside the extension function (KTOR-3079)
  • Allow using the client itself inside Auth plugin in the refreshTokens lambda. (KTOR-2977)
  • ADE at io.ktor.ide.plugins.add.KtorMarketplacePluginsUpdater.checkForUpdates (KTOR-3076)
  • Ktor Client JS: request to /example requests http://localhost/example (KTOR-453)
  • URLBuilder: Move Default Values to build() function (KTOR-1345)
  • Impossible to modify response headers (KTOR-2822)
  • Missing Locations params result in 404 instead of 400 (KTOR-447)
  • Should return 405 when route exists but not for given method instead of 404 (KTOR-737)
  • Fix 2.0.0 branch compilation (KTOR-2603)
  • Query of pre-signed URL has been altered after decode and re-encode process (KTOR-778)
  • ApplicationCall.locationOrNull raises error (KTOR-1684)
  • Make body nullable for request builder (KTOR-1400)
  • Provide better support for Ktor clients (KTOR-883)
  • Retry on HttpCode or network error (KTOR-572)
  • HttpRequestRetry in KTOR 2.0 should allow for request altering between retries (KTOR-3544)
  • HttpCookies: parse / in the name of a cookie (KTOR-3497)
  • Support for adding values to the MDC later on in the pipeline. (KTOR-536)
  • Pull Request - fix #1970 - update MultiPartFormDataContent to allow contentType override using optional builder (KTOR-1833)
  • Pull Request - KTOR-1264 - Add UUID to DefaultConversionService (KTOR-1815)
  • Pull Request - Intercept pipeline at Setup phase for XForwardedHeaderSupport feature… (KTOR-1844)
  • Pull Request - Add locale to ThymeleafContent (KTOR-1838)
  • Pull Request - KTOR-404 Introduce support for X-Http-Method-Override (KTOR-1825)
  • Objections to changing boundary to internal on MultiPartFormDataContent? (KTOR-325)
  • Prototype anchors in new plugins API (KTOR-3392)
  • Rename the 'Ios' client engine to more generic term to cover all Apple operating systems (KTOR-3394)
  • Update Samples to Ktor 2.0 (KTOR-3218)
  • Implement new Locations feature (KTOR-1706)
  • Feature: Use websockets with serialization (KTOR-423)
  • JS Client doesn't support ServiceWorker (KTOR-3448)
  • Move Server Related Code from ktor-http-cio to ktor-server-cio (KTOR-3462)
  • Client request builder: add shortcuts for authentication headers (KTOR-2876)
  • Add Check if Feature is installed for WebSocket builders (KTOR-3459)
  • Implementation for Create ktor-test module with mocks of engine and clients for writing tests (KTOR-3236)
  • TestEngineApplication - implement HttpClient API (KTOR-2416)
  • Add explicit menu action for migration (KTOR-3400)
  • Add possibility to fully configure metricName in ktor-server-metrics-micrometer (KTOR-3302)
  • Support New Native Memory Model (KTOR-3217)
  • Server for Kotlin Native (KTOR-746)
  • call.request.queryParameters decode plus as space (KTOR-3297)
  • Migrate existing plugins to RoutingScoped (KTOR-3201)
  • Support receiving OAuth code response as form post (KTOR-3342)
  • Add parameter for specifying content-length in ApplicationCall#respondBytes (KTOR-3087)
  • Allow application environment configuration when running via commandLineEnvironment (KTOR-3027)
  • Add locale to ThymeleafContent (KTOR-3313)
  • Add support for ports in withTestApplication (KTOR-725)
  • Expose non-reified request methods (KTOR-2590)
  • XML Support in Ktor (KTOR-489)
  • Start ktor server on random port (KTOR-686)
  • parameterOf() should have a variant that takes in a Map<String, List<String>> (KTOR-399)
  • [Ktor Client] CborFeature (KTOR-3174)
  • Can't set a base url that includes path data (KTOR-730)
  • Ktor: Fold internal stack frames for HTTP server (KTOR-2274)
  • Add method to Client and ServerResponseException (KTOR-3128)
  • Add UUID to DefaultConversionService (KTOR-1264)
  • Implementation for Simple API for writing features (KTOR-2480)
  • Add filtering support in Ktor client response interceptor (KTOR-2992)
  • Define completion priorities for Ktor keywords (KTOR-2773)
  • Adding features action in IDE (KTOR-2893)
  • Implement design about moving features from ktor-server-core (KTOR-1239)
  • Move server code to io.ktor.server.* package (KTOR-2865)
  • ApplicationConfig: how to iterate over keys and values of config (KTOR-2318)
  • Implementation for Events Feature For Client Metrics (KTOR-2472)
  • ContentConverter.convertForSend should receive a KType (KTOR-444)
  • Send 100 Continue response only when getting a request to receive IncomingContent (KTOR-855)
  • Update Documentation and Code for HttpsRedirect Feature (KTOR-1879)
  • Improve documentation for native/Apple client engines (KTOR-3375)
  • Update Documentation and Code for CallId Feature (KTOR-1874)
  • Feature to Plugin changes in Documentation (KTOR-2372)

1.6.7

2 years ago

Published 6 December 2021

  • Explicitly specify jdk version for building (KTOR-3358)
  • Make URL constructor public again (KTOR-3514)

1.6.6

2 years ago
  • Some Netty EngineMain properties are not set (KTOR-3464)
  • Session cookie with BASE64 encoding fails to set correct cookie (KTOR-524)
  • corsCheckRequestHeaders false (KTOR-445)
  • DropwizardMetrics does not append baseName to the 'per endpoint'-metrics (KTOR-2527)
  • Cookies that added to request got removed if HttpCookies plugin is installed (KTOR-3105)
  • Development mode isn't taken into account for subroutes (KTOR-3316)
  • URL port should be in 0..65535 (KTOR-3314)
  • Basic auth not sending second request (KTOR-3472)
  • Update Kotlin to 1.6.0 (KTOR-3422)