Boost Serialisation
- is a library for writing data into a stream.
- does not compress data.
- does not support data versioning automatically.
- supports STL containers.
- properties of data written depend on streams chosen (e.g. endian, compressed).
Protocol Buffers
- generates code from interface description (supports C++, Python and Java by default. C, C# and others by 3rd party).
- optionally compresses data.
- handles data versioning automatically.
- handles endian swapping between platforms.
- does not support STL containers.
Boost serialisation is a library for converting an object into a serialised stream of data. Protocol Buffers do the same thing, but also do other work for you (like versioning and endian swapping). Boost serialisation is simpler for "small simple tasks". Protocol Buffers are probably better for "larger infrastructure".
EDIT:24-11-10: Added "automatically" to BS versioning.