altoo-ag/akka-kryo-serialization

Default serializers for Option and immutable lists

Closed this issue · 2 comments

Its common to have Option[] and List[]. Currently those have to be registred by hand - for example immutable.list requires registering

"scala.collection.immutable.Nil$"
"scala.collection.immutable.$colon$colon"

and Option requires
"scala.Some" and "scala.None"

defaults for those common cases would be a nice addition

Set, map, all kinds of them need to be registered w/ eg explicit id strategy. Does anyone have some sane defaults they could provide?

This is a set of basic Scala/Java classes we use:

         // scala
        "scala.Some" = 100
        "scala.None$" = 101
        "scala.util.Left" = 102
        "scala.util.Right" = 103
        "scala.util.Success" = 104
        "scala.util.Failure" = 105

        "scala.collection.immutable.Nil$" = 130
        "scala.collection.immutable.$colon$colon" = 131
        "scala.collection.immutable.Map$EmptyMap$" = 132
        "scala.collection.immutable.Map$Map1" = 133
        "scala.collection.immutable.Map$Map2" = 134
        "scala.collection.immutable.Map$Map3" = 135
        "scala.collection.immutable.Map$Map4" = 136
        "scala.collection.immutable.Set$EmptySet$" = 140
        "scala.collection.immutable.Set$Set1" = 141
        "scala.collection.immutable.Set$Set2" = 142
        "scala.collection.immutable.Set$Set3" = 143
        "scala.collection.immutable.Set$Set4" = 144

        "scala.Tuple2" = 150
        "scala.Tuple3" = 151
        "scala.Tuple4" = 152

        // java
        "java.util.UUID" = 200

        "java.time.LocalDate" = 211
        "java.time.LocalDateTime" = 212
        "java.time.LocalTime" = 213
        "java.time.ZoneOffset" = 214
        "java.time.ZoneRegion" = 215
        "java.time.ZonedDateTime" = 216
        "java.time.Instant" = 217
        "java.time.Duration" = 218