La conférence pour l'éthique et la diversité dans la tech
avec des crêpes et du cœur Mixit heart

#TALK

Des parsers sûrs avec Rust et nom

L'écriture de parsers est un exercice intéressant, mais dangereux: on ne compte plus les erreurs d'implémentations, vulnérabilités et crashes en production causés par des parsers. En utilisant la méthode des parser combinators et la gestion mémoire de Rust, on évitera tous ces écueils.

Other Other

Les développeurs ont longtemps hésités entre les générateurs de parsers, comme lex et yacc, et l'écriture à la main, de préférence en C. On sait maintenant que les générateurs sont souvent limités, et que les parsers manuels sont complexes et souvent vulnérables. En appliquant l'approche des parser combinators, plus flexibles que les générateurs, et plus précis que les parsers manuels, on obtient des parsers simples à développer et maintenir. En utilisant la gestion mémoire garantie par le compilateur Rust, on peut pousser la performance du décodage à ses limites, par exemple par du parsing "zero copy", d'où la bibliothèque de parsers "nom".

Cette conférence décrit les astuces fournies par le langage Rust, et comment on peut les appliquer pour obtenir du code sûr et performant avec peu d'effort. On abordera aussi les parties théoriques des langages et parsers, ainsi que les (mauvaises) pratiques des formats de fichier actuels. Enfin, on étudiera les outils conçus pour aider au développement et à la maintenance de parsers.

► Regarder la vidéo

Geoffroy Couprie

Geoffroy travaille sur la sécurité des systèmes distribués depuis plus de dix ans. Il est désormais Senior Staff Engineer chez Apollo GraphQL. Vous avez de fortes chances de le trouver embarqué dans des discussions sur les protocoles et la cryptographie.

Hosted and supported by