flatbuffers
// Example.fbs
table Person {
name: string;
age: int;
}
root_type Person;
flatc -j Example.fbs
import com.google.flatbuffers.FlatBufferBuilder;
import Example.Person;
public class Main {
public static void main(String[] args) {
FlatBufferBuilder builder = new FlatBufferBuilder();
int nameOffset = builder.createString("John Doe");
int age = 30;
Person.startPerson(builder);
Person.addName(builder, nameOffset);
Person.addAge(builder, age);
int personOffset = Person.endPerson(builder);
Person.finishPersonBuffer(builder, personOffset);
byte[] serializedData = builder.sizedByteArray();
}
}
import com.google.flatbuffers.ByteBufferUtil;
import com.google.flatbuffers.Table;
import Example.Person;
import java.nio.ByteBuffer;
public class Main {
public static void main(String[] args) {
ByteBuffer buffer = ByteBuffer.wrap(receivedData);
Person person = Person.getRootAsPerson(buffer);
String name = person.name();
int age = person.age();
}
}