It'd be awesome to be able to deserialize directly into a provided ByteBuffer. For this, I think it makes sense to make the assumption that the ByteBuffer is large enough to hold the output and if it's not, the code can do whatever it wants as long as I can figure out that my ByteBuffer wasn't large enough somehow.