REST framework:
- REST framework has been superseded by
udash-rest
and deprecated. For backwards compatibility, it has been moved to separate, cross compiled module,commons-rest
.
Changes in GenCodec
(breaking)
- Extracted
SimpleOutput
fromOutput
andSimpleInput
fromInput
- this primarily makes writing wrappers easier. For wrapping, convenience abstract classes have been implemented. isNull
removed fromInput
. Instead,readNull()
returnsBoolean
to indicate whether there wasnull
or not.- Introduced
readCustom
andwriteCustom
as a more principled wayInput
andOutput
implementations may support custom native values likeObjectId
. - Introduced
InputMetadata
which may be used byInput
andOutput
implementations to provide additional information to codecs, e.g.JsonType
byJsonStringInput
. - Introduced
GenObjectCodec
as a public sub-typeclass ofGenCodec
. It hasmaterialize
,HasGenObjectCodec
etc.
Changes in RedisDriver
(breaking)
- Full support for Redis 5, including streams
- Blocking commands can now be executed on
RedisNodeClient
andRedisClusterClient
thanks to a separate connection pool maintained byRedisNodeClient
for them - Simplified type parameterization of Redis API variants by introducing
RedisSerialization
HashKey
type member is renamed toField
- Redis APIs are now parameterized also by
Record
type which has a separateRedisRecordCodec
serialization typeclass which can be derived fromGenObjectCodec
. Records are used in Redis hash and stream commands. RedisDataCodec
no longer usesStreamOutput/Input
- simple values are serialized as plain strings while complex values are serialized to JSON before being sent to Redis. This is a major breaking change in serialization format used by Redis driver to save Scala types into Redis.RetryStrategy
is now more composable- Handling of
TRYAGAIN
Redis Cluster errors with configurable retry strategy - Changes in
ClusterConfig
- primarily new retry strategies