Scala Serialization Guide
Fory supports all scala object serialization:
case
class serialization supportedpojo/bean
class serialization supportedobject
singleton serialization supportedcollection
serialization supported- other types such as
tuple/either
and basic types are all supported too.
Scala 2 and 3 are both supported.
Install
To add a dependency on Fory scala for scala 2 with sbt, use the following:
libraryDependencies += "org.apache.fory" % "fory-scala_2.13" % "0.11.1"
To add a dependency on Fory scala for scala 3 with sbt, use the following:
libraryDependencies += "org.apache.fory" % "fory-scala_3" % "0.11.1"
Quict Start
case class Person(name: String, id: Long, github: String)
case class Point(x : Int, y : Int, z : Int)
object ScalaExample {
val fory: Fory = Fory.builder().withScalaOptimizationEnabled(true).build()
// Register optimized fory serializers for scala
ScalaSerializers.registerSerializers(fory)
fory.register(classOf[Person])
fory.register(classOf[Point])
def main(args: Array[String]): Unit = {
val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
println(fory.deserialize(fory.serialize(p)))
println(fory.deserialize(fory.serialize(Point(1, 2, 3))))
}
}
Fory creation
When using fory for scala serialization, you should create fory at least with following options:
import org.apache.fory.Fory
import org.apache.fory.serializer.scala.ScalaSerializers
val fory = Fory.builder().withScalaOptimizationEnabled(true).build()
// Register optimized fory serializers for scala
ScalaSerializers.registerSerializers(fory)