github AVSystem/scala-commons v1.34.0

latest releases: v2.16.0, v2.15.0, v2.14.0...
5 years ago

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 from Output and SimpleInput from Input - this primarily makes writing wrappers easier. For wrapping, convenience abstract classes have been implemented.
  • isNull removed from Input. Instead, readNull() returns Boolean to indicate whether there was null or not.
  • Introduced readCustom and writeCustom as a more principled way Input and Output implementations may support custom native values like ObjectId.
  • Introduced InputMetadata which may be used by Input and Output implementations to provide additional information to codecs, e.g. JsonType by JsonStringInput.
  • Introduced GenObjectCodec as a public sub-typeclass of GenCodec. It has materialize, HasGenObjectCodec etc.

Changes in RedisDriver (breaking)

  • Full support for Redis 5, including streams
  • Blocking commands can now be executed on RedisNodeClient and RedisClusterClient thanks to a separate connection pool maintained by RedisNodeClient for them
  • Simplified type parameterization of Redis API variants by introducing RedisSerialization
  • HashKey type member is renamed to Field
  • Redis APIs are now parameterized also by Record type which has a separate RedisRecordCodec serialization typeclass which can be derived from GenObjectCodec. Records are used in Redis hash and stream commands.
  • RedisDataCodec no longer uses StreamOutput/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

Don't miss a new scala-commons release

NewReleases is sending notifications on new releases.