Home

Awesome

kryo-more

Kryo 5.x serializers for various libGDX-related libraries.

This lets Kryo 5.x (currently 5.6.2) de/serialize objects from RegExodus, digital, jdkgdxds, juniper, cringe, gand, and simple-graphs. All of these but simple-graphs are maintained by tommyettinger, who also maintains this serialization library.

You may want to consider using Fury serialization instead of Kryo, since it sometimes doesn't need these kinds of manual serializer, and is faster than Kryo in most benchmarks. It isn't as mature of a project, but it's being incubated by the Apache Foundation, and is developing quickly. If you do use Fury, you can get manual serializers (when they are needed) from kryo-more's relative project, tantrum.

How to get

Each sub-library has its own version, linked to the version of the library it de/serializes. The last component of the version is usually .0, but can be increased for bug-fixes to the same linked library version, or if Kryo itself had a (compatible) update available but the linked library did not have an update.

All of these sub-libraries depend on Java 8 or higher, except for kryo-regexodus (which depends on Java 7 or higher) and some older versions of kryo-digital and kryo-juniper.

Gradle dependency info:

kryo-regexodus:

implementation "com.github.tommyettinger:kryo-regexodus:0.1.16.1"

kryo-digital:

implementation "com.github.tommyettinger:kryo-digital:0.5.4.1"

kryo-jdkgdxds:

implementation "com.github.tommyettinger:kryo-jdkgdxds:1.7.1.1"

kryo-juniper:

implementation "com.github.tommyettinger:kryo-juniper:0.6.3.1"

kryo-cringe:

implementation "com.github.tommyettinger:kryo-cringe:0.2.0.1"

kryo-gand (not recommended):

implementation "com.github.tommyettinger:kryo-gand:0.1.1.1"

kryo-simple-graphs:

implementation "com.github.tommyettinger:kryo-simple-graphs:3.0.0.1"

Maven dependency info:

kryo-regexodus:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-regexodus</artifactId>
  <version>0.1.16.1</version>
</dependency>

kryo-digital:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-digital</artifactId>
  <version>0.5.4.1</version>
</dependency>

kryo-jdkgdxds:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-jdkgdxds</artifactId>
  <version>1.7.2.1</version>
</dependency>

kryo-juniper:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-juniper</artifactId>
  <version>0.6.3.1</version>
</dependency>

kryo-cringe:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-cringe</artifactId>
  <version>0.2.0.1</version>
</dependency>

kryo-gand:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-gand</artifactId>
  <version>0.1.1.1</version>
</dependency>

kryo-simple-graphs:

<dependency>
  <groupId>com.github.tommyettinger</groupId>
  <artifactId>kryo-simple-graphs</artifactId>
  <version>3.0.0.1</version>
</dependency>

GWT

GWT is not supported because Kryo doesn't support it. You can use libGDX Json on GWT; except for simple-graphs, cringe, and gand, all the libraries here are supported by jdkgdxds-interop with Json. You can just use cringe and gand with libGDX Json natively, since they have classes that implement Json.Serializable.

License

Apache 2.0, see the LICENSE file.