v1.34.0
REST framework:
- REST framework has been superseded by
udash-restand deprecated. For backwards compatibility, it has been moved to separate, cross compiled module,commons-rest.
Changes in GenCodec (breaking)
- Extracted
SimpleOutputfromOutputandSimpleInputfromInput- this primarily makes writing wrappers easier. For wrapping, convenience abstract classes have been implemented. isNullremoved fromInput. Instead,readNull()returnsBooleanto indicate whether there wasnullor not.- Introduced
readCustomandwriteCustomas a more principled wayInputandOutputimplementations may support custom native values likeObjectId. - Introduced
InputMetadatawhich may be used byInputandOutputimplementations to provide additional information to codecs, e.g.JsonTypebyJsonStringInput. - Introduced
GenObjectCodecas a public sub-typeclass ofGenCodec. It hasmaterialize,HasGenObjectCodecetc.
Changes in RedisDriver (breaking)
- Full support for Redis 5, including streams
- Blocking commands can now be executed on
RedisNodeClientandRedisClusterClientthanks to a separate connection pool maintained byRedisNodeClientfor them - Simplified type parameterization of Redis API variants by introducing
RedisSerialization HashKeytype member is renamed toField- Redis APIs are now parameterized also by
Recordtype which has a separateRedisRecordCodecserialization typeclass which can be derived fromGenObjectCodec. Records are used in Redis hash and stream commands. RedisDataCodecno 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.RetryStrategyis now more composable- Handling of
TRYAGAINRedis Cluster errors with configurable retry strategy - Changes in
ClusterConfig- primarily new retry strategies