Releases: rsocket/rsocket-kotlin
Releases · rsocket/rsocket-kotlin
0.16.0 - Resurrection of rsocket-kotlin
What's Changed
- Fix custom MIME type serialization incompatibility (#260). Thanks to @akowal!
- drop JS legacy and deprecated native targets
- Update dependencies to latest versions:
- ktor 2.3.11
- kotlinx.coroutines 1.8.1
- Migrate to Kotlin 2.0
- Reduce usages of deprecated in ktor APIs
- Preparation for migration from
ktor-io
tokotlinx-io
(which will happen also in ktor 3.0)pool: ObjectPool<ChunkBuffer>
is not anymore provided from transports - ABI incompatible change, mostly source compatible, aspool
was not expected to be used from outside ofrsocket-kotlin
pool: ObjectPool<ChunkBuffer>
was temporary replaced withpool: BufferPool
in metadata API and will be removed later - ABI incompatible change, mostly source compatible, aspool
was not expected to be used from outside ofrsocket-kotlin
- Setup binary compatibility validation
rsocket-transport-ktor-websocket
module was renamed torsocket-transport-ktor-websocket-internal
and is not anymore exposed to public API- the only class it contains is
WebSocketConnection
which is shared between client and server implementations and should be used only there
- the only class it contains is
- a lot of changes of build logic because of Kotlin Gradle Plugin improvements and overall cleanup
New Contributors
Full Changelog: 0.15.4...0.16.0
0.15.4 - Ktor 2.0, New native memory manager, NodeJS transport
Breaking changes
- Ktor is updated to 2.0, which is not compatible with previous versions
- Only new native memory manager is supported from now
- Changed ktor transport dependencies:
rsocket-ktor-client
andrsocket-ktor-server
- plugins for ktor client and server with RSocket support with ktor-like builders and routing (WS transport only)- client supported on all platforms
- server supported on JVM and Native(except windows)
rsocket-transport-ktor-tcp
- client and server TCP transport usingktor-network
- supported on JVM and Native(except windows) platforms
rsocket-transport-ktor-websocket-client
andrsocket-transport-ktor-websocket-server
- client and server WS transport- comparing to
rsocket-ktor-client
andrsocket-ktor-server
provides similar API to otherrsocket-transport-*
modules for simple usage without knowing ktor specifics - client supported on all platforms
- server supported on JVM and Native(except windows)
- comparing to
Features:
- Update to ktor 2.0 #208, #215
- Support new native memory manager #208, #209
- Support Native WS client and server transport #215
- Experimental NodeJS TCP client and server transport #191
Bug fixes:
- Fix limiter overflow #218 Thanks to @yuriykulikov !
- Fix closing connection on cancelling requester #220
Other
- Rework build configuration
- Rework publication, to use single macos CI instance
- Run JVM tests on java 8, 11 and 17
- Replace jfrog snapshots publication to Github Packages
- Improve tests stability
- Make mulitplatform chat sample an independent project, using latest stable rsocket-kotlin version
Version updates
- kotlin 1.6.20
- ktor 2.0.0
- kotlinx.coroutines 1.6.1
PR's merged
- Nodejs TCP server and client transport by @olme04 in #191
- Improve chat sample by @olme04 in #196
- Version catalogs and safe project accessors by @olme04 in #197
- Rework publication by @olme04 in #198
- Targets configuration by @olme04 in #199
- Jvm toolchain by @olme04 in #200
- reworks workflows by @olme04 in #204
- introduces local reusable workflows by @olme04 in #207
- Migrate to ktor 2.0.0 eap and new native memory model by @olme04 in #208
- Update code after updating to new native memory model by @olme04 in #209
- Improve tests by @olme04 in #210
- fix publication for empty(for now) module by @olme04 in #212
- changed Limiter.requests to AtomicLong by @yuriykulikov in #214
- Snapshot workflow fix by @olme04 in #218
- update ktor by @olme04 in #215
- Fix closing connection on cancelling requester by @olme04 in #220
- Split ktor transports implementation by @olme04 in #219
New Contributors
- @yuriykulikov made their first contribution in #214
Full Changelog: 0.14.3...0.15.4
0.14.3 - Fragmentation, Improved transport lifecycle
Breaking changes
- Remove Frame.release and Payload.release (use close instead) #182
- Reworked how Client/Server transports are implemented #178
Features:
Other
- Use
sealed
andfun
interfaces where appropriate Metadata
,PayloadBuilder
andCompositeMetadataBuilder
implementsCloseable
- Make logging API explicitly public and provide temporary experimental annotation for it
- Cleanup usages of
DangerousInternalIoApi
(after update to ktor 1.6.0 it's not needed) - Enable
explicitApi
mode - Improve setup payload handling
- Create infrastructure for client only tests and implement test for JS WS Client transport #179
Version updates
- kotlin 1.6.10
- ktor 1.6.7
- kotlinx.coroutines 1.5.2-native-mt
PR's merged
- upgrades dependencies in documentation by @rcd27 in #174
- update gradle and minor dependencies update by @olme04 in #181
- cleanups general code and public API by @olme04 in #175
- Rework internals - preparation for fragmentation by @olme04 in #176
- provides fragmentation and reassembly by @olme04 in #177
- updates gradle action by @olme04 in #184
- improves transport api and lifecycle by @olme04 in #178
- сleanups of close/release inconsistency by @olme04 in #182
- improves client side tests by @olme04 in #179
- prepares release 0.14.0 by @olme04 in #185
- Cleanup modules by @olme04 in #190
- Update versions (kotlin 1.6.0, ktor 1.6.7, gradle 7.3.1) by @olme04 in #188
- Fix publication after kotlin 1.6 by @olme04 in #194
- kotlin 1.6.10 by @olme04 in #195
New Contributors
Full Changelog: 0.13.1...0.14.3
0.13.1 Release
fixes workflow file Signed-off-by: Oleh Dokuka <oleh.dokuka@icloud.com>
0.12.0 - Streams API improvements
Breaking changes
RSocket.requestChannel
signature changed to receive initial payload as additional parameter (#125)Flow.buffer
doesn't anymore controlrequestN
semantic (#118)
Features
- Streams with flexible requestN semantic (#118)
- Better structured concurrency and channels handling (#126)
Bugs
Dependencies updates
Kotlin
1.4.21ktor
1.4.3 - improvedktor-io
performance on all platformskotlinx.coroutines
1.4.2-native-mt - little reworked channel apis
0.11.5 - Fixed targets publication
Due to some publication issues 0.11.0 - 0.11.4 doesn't contain all artifacts (mainly K/N darwin targets). Please update to 0.11.5.
Current version contains all artifacts and available on JCenter!
0.11.1 - Configuration, Payload and Metadata API
First release published to JCenter!
Features
- Configuring Connector and Server with DSL
- Reworked Payload creation
- Composite Metadata support
- Extensions Metadata support (Routing, Tracing, Auth, etc)
- Reconnectable RSocket
- Transports API
0.10.0 - Multi-platform
The first multi-platform release of rsocket-kotlin is here!
WARNING: this release isn't published to maven-central due to publishing issues
Features
- Based on koitlinx.coroutines
- Multiplatform support for TCP and WebSocket using ktor
- Support for JVM, JS (nodejs and browser) and Native targets: linux x64, windows x64, macos, ios, watchos, tvos
- ktor JVM server/client TCP/WebSocket transports
- ktor JS client (both browser and nodejs) WebSocket transport (it's also possible to run rsocket with TCP transport on nodejs)
- ktor Native client TCP transport (don't support windows x64 yet)
- Support all interactions: Fire and Forget, Request-Response, Request-Stream, Request-Channel and Metadata-Push (with backpressure on streams)
- Uses Kotlin 1.4.10 and kotlinx.coroutines 1.3.9-native-mt-2
0.9.8
0.9.8
0.9.7
0.9.7