Des parsers sûrs avec Rust et nomTalk

Des parsers sûrs avec Rust et nom

FR
Other
Other

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.

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.

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.

No video player

Nos sponsors en 2016

Sponsors principaux
Red Hat
Sopra Steria
Sword
VISEO
Worldline
Zenika
Esker
Breaz
Only Lyon
stormshield.eu
Sponsors Partner
ERDF
Groupe SII
alfene
Amaris
Boot-Start
CGI
Econocom
InfoQ FR
Pivotal
sonarsource
ISR
Stack Overflow