← Retour au blog
tech 29 mai 2026

Bijou64 : Un encodage d'entiers à longueur variable révolutionnaire

Découvrez Bijou64, un encodage d'entiers à longueur variable qui améliore la performance et la sécurité des protocoles binaires. Un outil indispensable pour les développeurs cherchant à optimiser leur gestion des données.

Introduction

Quand on travaille sur la sécurité, il est agréable de bénéficier par accident d'une amélioration de performance. C'est précisément ce qui s'est passé avec Bijou64, un encodage d'entiers à longueur variable (varint) développé pour le protocole de synchronisation CRDT Subduction. Conçu initialement pour corriger un bug subtil de vérification de signature, Bijou64 s'est avéré être non seulement plus sûr mais aussi plusieurs fois plus rapide que l'encodage varint LEB128, largement utilisé dans l'industrie.

Le problème des encodages varint classiques

De nombreux protocoles binaires nécessitent une méthode compacte pour encoder des entiers qui sont généralement petits mais parfois grands. Les encodages d'entiers à longueur variable résolvent ce problème. Cependant, la plupart des conceptions ne traitent la canonicité qu'après coup, ce qui nécessite souvent une vérification d'exécution dans le décodeur plutôt qu'une structure propre à l'encodage lui-même.

Prenons l'exemple de LEB128, un choix populaire pour de nombreux projets grâce à sa simplicité et son efficacité. LEB128 encode un nombre comme une séquence de segments de 7 bits, avec le bit de poids fort de chaque octet indiquant si d'autres octets suivent. Cette méthode permet d'éviter d'écrire systématiquement 8 octets même pour représenter un petit nombre. Cependant, un problème se pose : chaque nombre peut être représenté de multiples façons dans LEB128, ce qui complique la gestion des données signées et des compressions.

Bijou64 : une solution élégante

Bijou64 a été créé pour pallier ces limitations en garantissant qu'un nombre ne puisse être représenté que d'une seule manière. Cela simplifie non seulement le stockage et la compression des données, mais améliore également la sécurité en minimisant les erreurs de vérification de signature. En évitant les multiples représentations, Bijou64 facilite la déduplication des séquences de nombres lorsqu'elles sont stockées.

Performances accrues

Des tests récents montrent que Bijou64 est non seulement plus sûr mais aussi plus performant que LEB128. Les benchmarks indiquent qu'il est en moyenne 2 à 3 fois plus rapide, un gain précieux dans des environnements où la vitesse de traitement est cruciale.

Cas d'usage et adoption

Bijou64 trouve sa place dans divers applications où l'efficacité et la sécurité sont primordiales. Par exemple, dans les systèmes de fichiers distribués ou les protocoles de communication sécurisés. Son adoption croissante démontre que les développeurs reconnaissent sa valeur ajoutée par rapport aux solutions traditionnelles.

Conclusion

En conclusion, Bijou64 représente une avancée significative dans le domaine des encodages varint. Sa capacité à combiner sécurité et performance en fait un choix incontournable pour les projets modernes nécessitant une gestion efficace des entiers. Discutons de ton projet en 15 minutes.

---

Introduction

When working on security, it's a pleasant surprise to accidentally achieve a performance boost. This is precisely what happened with Bijou64 – a variable-length integer encoding developed for the Subduction CRDT sync protocol. Initially designed to fix a subtle signature verification bug, Bijou64 proved to be not only more secure but also several times faster than the widely-used LEB128 varint encoding.

The Problem with Traditional Varint Encodings

Many binary protocols require a compact way to encode integers that are usually small but occasionally large. Variable-length integer encodings solve this issue. However, most designs treat canonicalization as an afterthought, often requiring a runtime check in the decoder rather than being built into the structure of the encoding.

LEB128 is a popular choice for many projects due to its simplicity and efficiency. It encodes a number as a sequence of 7-bit segments, with the high bit of each byte signaling if more bytes follow. This method avoids writing a full 8 bytes even when representing small numbers. However, a problem arises: each number can be represented in multiple ways in LEB128, complicating signed data management and compression.

Bijou64: An Elegant Solution

Bijou64 was created to address these limitations by ensuring that a number can only be represented in one unique way. This not only simplifies data storage and compression but also enhances security by minimizing signature verification errors. By avoiding multiple representations, Bijou64 facilitates deduplication of number sequences when stored.

Enhanced Performance

Recent tests show that Bijou64 is not only more secure but also more efficient than LEB128. Benchmarks indicate it is on average 2 to 3 times faster, a valuable gain in environments where processing speed is crucial.

Use Cases and Adoption

Bijou64 fits well in various applications where efficiency and security are paramount, such as distributed file systems or secure communication protocols. Its growing adoption demonstrates developers recognize its added value over traditional solutions.

Conclusion

In conclusion, Bijou64 represents a significant advancement in varint encodings. Its ability to combine security and performance makes it an indispensable choice for modern projects requiring efficient integer management. Let's discuss your project in 15 minutes.

Bijou64 variable-length integer encoding LEB128 performance
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call