varintversion

A simple varint implementation modeled after the one found in Go's standard library.

Originally I wrote it because I wanted to implement a protocol in ocaml that used it, but did not want to use piqi, or protobuf.

What varint encoding does is that you can input an int32 or int64, and for smaller numbers, it will take up less space, protobuf uses this technique for field length prefixing, as a result it is more space efficient than using an 32 bit or 64 bit int, but on the other hand it does take more CPU time.