Un projet technique publié récemment démontre la faisabilité de calculs d'itinéraires urbains complexes directement dans un navigateur web, sans nécessité de connexion internet. Développé par un contributeur individuel, l'outil se concentre sur la ville de San Francisco et exploite le langage Rust, compilé en WebAssembly (Wasm), pour exécuter l'intégralité des calculs côté client.

Calculs intégralement hors ligne

La particularité principale de cette démonstration est son fonctionnement en mode déconnecté. Une fois la page web chargée, l'utilisateur peut saisir des points de départ et d'arrivée, et l'application calcule un itinéraire optimal sans aucun échange avec un serveur distant. Les données cartographiques et les algorithmes de routage sont embarqués dans le navigateur, grâce à la compilation du code Rust en WebAssembly, un format binaire exécutable par les moteurs JavaScript modernes.

Architecture technique : Rust et WebAssembly

Le projet illustre une tendance récente dans le développement web : l'utilisation de langages systèmes comme Rust pour des tâches lourdes, via WebAssembly. Rust apporte des garanties de performance et de sécurité mémoire, tandis que Wasm permet une exécution quasi-native dans le navigateur. L'application démontre qu'il est possible de traiter un graphe routier urbain de la taille de San Francisco – avec ses rues, intersections et sens uniques – en temps réel, sur une machine cliente standard.

Licence open source

Le code source complet du projet est publié sous licence MIT, une licence permissive qui autorise sa réutilisation, modification et redistribution, y compris dans des projets commerciaux. Cette ouverture vise à encourager les expérimentations et les contributions de la communauté des développeurs.

Limites et perspectives

Une limitation notable est le périmètre géographique restreint : la démonstration ne couvre que la ville de San Francisco. L'extension à d'autres zones nécessiterait l'intégration de jeux de données cartographiques supplémentaires (comme ceux d'OpenStreetMap) et l'optimisation du temps de chargement initial, qui dépend du volume de données transférées.

Cette preuve de concept s'inscrit dans une démarche plus large d'émancipation des applications web vis-à-vis des connexions permanentes, avec des applications potentielles dans les zones à faible couverture réseau, les systèmes embarqués ou les applications respectueuses de la vie privée (aucune donnée de localisation n'étant envoyée à un serveur).