Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data. message Person { optional string name = 1; optional int32 id = 2; optional string email = 3; } // Java code Person john = Person.newBuilder() .setId(1234) .setName("John Doe") .setEmail("jdoe@example.com") .build(); output = new FileOutputStream(args[0]); john.writeTo(output);