Just one doubt.

Just one doubt. When TWriter.WriteString chooses vaString prefix, is it basically saving the string as a shortstring? If so, there is a massive possible optimization in TReader.ReadString for this vaString case, bypassing TEncoding and just reading the bytes directly on a shortstring.

Comments