Varint
Un Varint (entier de longueur variable) est l'encodage d'entier de longueur variable utilisé par Protobuf et d'autres protocoles : chaque octet porte 7 bits de charge utile dans ses bits de poids faible, et le bit de poids le plus fort sert d'indicateur de continuation.
Objectif
Représenter les entiers de manière compacte dans les protocoles de sérialisation — les petits entiers prennent très peu de place et les grands s'étendent automatiquement.
Mécanisme
L'entier non signé est découpé en groupes de 7 bits émis du poids le plus faible au plus fort ; un 1 dans le MSB d'un octet signifie que d'autres octets suivent, un 0 marque la fin. Les entiers signés sont d'abord transposés en non signé via ZigZag.
Cas d’usage
- Encodage des champs Protobuf
- Colonnes de base de données de longueur variable
- Protocoles binaires compacts