>>> varint.decode_bytes(b'\x8c\x01') 140 >>> varint.decode_bytes(b'\x8c\x01eee') 140 I'm not sure if that should raise exception, silently discard data (like it's now) or maybe return unparsed input?