POxOSerializer is a fast and efficient cross-language serializer for POJO and POCO classes. The goal is to allow communication between software written in java and c#. Using this serializer you can serialize/deserialize any class that is composed by primitive types, strings, lists and maps. You can write your classes in java and use the java2csharp maven plugin (https://github.com/codejuicer/java2csharp) to generate c# equivalent classes. List (IList) and Map (IDictionary) are implemented respectively with ArrayList (List) and HashMap (Dictionary) in Java (C#). The POxOSerializer has an easy to use API with only serialize and deserialize methods.
It is not thread safe and it improve his performance along the time.
About the binary encoder/decoder algorithms we reuse Kryo code by Nathan Sweet (https://github.com/EsotericSoftware/kryo).
Java | C# |
byte | SByte |
Byte | SByte |
char | Char |
Character | Char |
short | Int16 |
Short | Int16 |
int | Int32 |
Integer | Int32 |
long | Int64 |
Long | Int64 |
double | Double |
Double | Double |
float | Single(float) |
Float | Single(float) |
boolean | Boolean |
Boolean | Boolean |
String | String |
Date | DateTime |
LocalDate | None |
LocalTime | None |
LocalDateTime | None |
ZonedDateTime | None |
enum | enum |
List | IList |
Map | IDictionary |
POxOSerializer bundle is available on the releases page and at [Maven Central] (http://search.maven.org/#browse%7C2107995541).
To use the official release of POxOSerializer, please use the following snippet in your pom.xml
<dependency>
<groupId>org.codejuicer</groupId>
<artifactId>poxo-serializer</artifactId>
<version>1.0.4</version>
</dependency>
POxOSerializer library for c# is available on the releases page