I'm using it on my racing game and am very happy; it seems like a very solid network stack and was very quick to add into my game. But yes, the docs are pretty light at the moment. You can build doxygen documentation from the source code, but that's just a reference, not a how-to. There's a few discussions with Glenn in the github issues, which are kind of useful to brush up: e.g. https://github.com/networkprotocol/yojimbo/issues/25
Glenn is quite busy these days, but is also a very friendly guy if you get a hold of him
There are a few examples in the distro, which define their messages in shared.h.
For each message type in your game, sub-class yojimbo::Message for small messages with serialization callbacks, or yojimbo::BlockMessage if you want to attach a blob of variable-sized data onto the message. Then implement the templated Serialize function as in the samples, and add the YOJIMBO_VIRTUAL_SERIALIZE_FUNCTIONS macro within your class body.
Then you use the YOJIMBO_MESSAGE_FACTORY_START / YOJIMBO_DECLARE_MESSAGE_TYPE / YOJIMBO_MESSAGE_FACTORY_FINISH macros to create a message factory that can create all of your message types.
Then sub-class yojimbo::Adapter and override CreateMessageFactory with a function that returns an instance of your custom message factory type (which was declared by those macros, above).
Then, when you make your yojimbo::Client or yojimbo::Server objects, you pass in your own Adapter-sub-class, which allows the yojimbo client/server to create your custom message types.
The server/client can then allocate messages by passing a message type ID number to CreateMessage, then optionally allocate data-blocks and attach them onto your BlockMessage message types (with AllocateBlock / AttachBlockToMessage), then send them with SendMessage.
The server/client should call AdvanceTime/ReceivePackets/SendPackets regularly to actually push packets through the network, and also call ReceiveMessage in a loop to decode received packets into your custom message types (use GetType, perhaps in a switch statement, to determine exactly which type of message class has been instantiated).