[id='protostream']
:context: dev
= Marshalling Custom Java Objects with ProtoStream
{brandname} uses a ProtoStream API to encode and decode Java objects into
Protocol Buffers (Protobuf); a language-neutral, backwards compatible format.

//Community
ifndef::productized[]
* link:https://github.com/infinispan/protostream[{brandname} ProtoStream library]
* link:https://developers.google.com/protocol-buffers[Protocol Buffers]
endif::productized[]

include::{topics}/con_proto_schemas.adoc[leveloffset=+1]
include::{topics}/con_protostream_serialization_context.adoc[leveloffset=+1]
include::{topics}/ref_protostream_types.adoc[leveloffset=+1]
include::{topics}/proc_generating_serial_cxt_initializer.adoc[leveloffset=+1]
include::{topics}/proc_implementing_serial_cxt_initializer.adoc[leveloffset=+1]

// Restore the parent context.
ifdef::parent-context[:context: {parent-context}]
ifndef::parent-context[:!context:]
