This project has moved. For the latest updates, please go here.

Pluggable protocols


Replace the Simple* sockets with a more pluggable protocol design, e.g., Socket <-> Message Framer (length prefix / delimeters) <-> Message Encoder/Decoder (XML / binary formatter (or other formatters))
Length prefix options should include type of length (including signedness, bitness, and length) and maximum message size.
Delimeter options should include beginning/end delimeters (beginning would be optional), maximum message size, and whether messages are guaranteed not to contain the delimeters.
XML encoder/decoder options should include Encoding (specified or fixed), BOM presence, and prolog usage/interpretation. Other formatters probably will handle the options themselves.
At what point would keepalives be introduced? Probably the message framing level, but they should be optional.