Hi Juan,
Cap'n Proto does not directly support varints because their variable width makes it impossible to access anything later in the message without parsing the varint. Thus, Cap'n Proto would no longer be random-access, and would no longer be appropriate as an in-memory representation, defeating the purpose. Also, the varint format was actually a huge mistake in protobufs -- it's surprisingly slow both to parse and to encode, because of all the branching required.
As an alternative, Cap'n Proto provides "packing". When you write a message out, you can choose to write it in "packed" format, which does a pass over the data that compresses out zero bytes. This of course takes non-zero time and so counts as a decoding step, but it is still faster in practice than using protobufs (varints), and produces similarly-sized messages.
-Kenton