{"id":2878,"date":"2026-09-26T09:07:35","date_gmt":"2026-09-26T08:07:35","guid":{"rendered":"https:\/\/www.blog-actu.com\/index.php\/2026\/09\/26\/valen-un-developpeur-fait-dialoguer-les-generiques-de-rust-avec-un-autre-langage\/"},"modified":"2026-09-27T13:18:54","modified_gmt":"2026-09-27T12:18:54","slug":"valen-un-developpeur-fait-dialoguer-les-generiques-de-rust-avec-un-autre-langage","status":"publish","type":"post","link":"https:\/\/www.blog-actu.com\/index.php\/2026\/09\/26\/valen-un-developpeur-fait-dialoguer-les-generiques-de-rust-avec-un-autre-langage\/","title":{"rendered":"Valen : un d\u00e9veloppeur fait dialoguer les g\u00e9n\u00e9riques de Rust avec un autre langage"},"content":{"rendered":"<p>Faire communiquer deux langages de programmation compil\u00e9s passe presque toujours par le m\u00eame interm\u00e9diaire : l\u2019interface binaire du C, dite C ABI. Evan Ovadia, ancien ing\u00e9nieur de Google et contributeur au langage Mojo, vient de montrer qu\u2019on pouvait s\u2019en passer, au moins en partie. Son exp\u00e9rience permet d\u2019\u00e9changer des types et des fonctions g\u00e9n\u00e9riques entre Rust et un autre langage, dans les deux sens, ce que le C ABI est incapable de faire.<\/p>\n<h2>Le probl\u00e8me des g\u00e9n\u00e9riques<\/h2>\n<p>Aujourd\u2019hui, pour utiliser une biblioth\u00e8que Rust depuis un autre langage, il faut l\u2019exposer \u00ab \u00e0 la mani\u00e8re du C \u00bb : fonctions d\u00e9clar\u00e9es <em>extern \u00ab\u00a0C\u00a0\u00bb<\/em>, types au format <em>repr(C)<\/em>, puis appel via une interface de fonctions \u00e9trang\u00e8res (FFI). Le souci, c\u2019est que le C ne conna\u00eet pas les g\u00e9n\u00e9riques, ces types laiss\u00e9s en attente et pr\u00e9cis\u00e9s plus tard. Or Rust en fait un usage intensif. R\u00e9sultat : les biblioth\u00e8ques les plus riches doivent \u00eatre r\u00e9duites \u00e0 des types primitifs pour franchir la fronti\u00e8re, et perdent une bonne partie de leur int\u00e9r\u00eat.<\/p>\n<p>Evan Ovadia s\u2019est heurt\u00e9 \u00e0 ce mur en cr\u00e9ant son propre langage, Valen, successeur d\u2019un projet ant\u00e9rieur baptis\u00e9 Vale, qu\u2019il con\u00e7oit comme une variante plus rapide et plus agr\u00e9able de Rust. Repartir de z\u00e9ro l\u2019aurait priv\u00e9 de ses biblioth\u00e8ques Rust favorites, \u00e0 commencer par wgpu pour le graphisme.<\/p>\n<h2>Deux compilateurs qui se passent le relais<\/h2>\n<p>Sa solution tient en deux \u00e9tapes. D\u2019abord, embarquer le compilateur Rust directement dans celui de Valen, ce que Rust permet d\u00e9j\u00e0 via son composant rustc_driver. Ensuite, modifier Rust pour que, lorsqu\u2019il rencontre un type propre \u00e0 Valen, il confie cette partie au compilateur Valen et attende le r\u00e9sultat. Les deux outils collaborent ainsi au lieu de rester chacun dans son coin.<\/p>\n<p>Le correctif ne compte qu\u2019une centaine de lignes, mais son auteur reconna\u00eet qu\u2019il s\u2019agit de \u00ab l\u2019option nucl\u00e9aire \u00bb : il suppose que Rust s\u2019appuie sur LLVM pour g\u00e9n\u00e9rer le code machine, ce qui n\u2019est pas toujours le cas, et n\u2019a aucune chance d\u2019\u00eatre int\u00e9gr\u00e9 tel quel au projet officiel. Il a baptis\u00e9 ce travail \u00ab Golden Spike \u00bb, en r\u00e9f\u00e9rence au dernier crampon dor\u00e9 qui acheva le premier chemin de fer transcontinental am\u00e9ricain en 1869.<\/p>\n<p>Sur Reddit et Lobste.rs, les d\u00e9veloppeurs ont salu\u00e9 l\u2019audace tout en discutant des limites, certains doutant que le syst\u00e8me de types de Rust soit la meilleure base pour un standard d\u2019interop\u00e9rabilit\u00e9. L\u2019enjeu d\u00e9passe pourtant Valen : si l\u2019approche m\u00fbrit, de nouveaux langages pourraient na\u00eetre en s\u2019appuyant directement sur l\u2019immense catalogue de biblioth\u00e8ques Rust, sans sacrifier leurs fonctionnalit\u00e9s avanc\u00e9es.<\/p>\n<p><strong>\u00c0 lire aussi :<\/strong> <a href=\"https:\/\/www.blog-actu.com\/index.php\/2026\/04\/14\/google-a-integre-rust-dans-le-modem-du-pixel-10-pour-securiser-le-code-existant\/\">Google a int\u00e9gr\u00e9 Rust dans le modem du Pixel 10 pour s\u00e9curiser le code existant<\/a><\/p>\n<p><!-- blogactu-source: https:\/\/www.theregister.com\/devops\/2026\/09\/25\/valen-creator-drives-golden-spike-to-connect-new-languages-with-rust\/5299273 --><\/p>\n<p style=\"font-size:11px;line-height:1.4;color:#9a9a9a;margin-top:2.5em\">Image : <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:RustCodeOnScreen.jpg\" style=\"color:#9a9a9a;text-decoration:none\" target=\"_blank\" rel=\"nofollow noopener\">Slashme, CC0, via Wikimedia Commons<\/a><\/p>\n<p><!-- blogactu-seo: 2026-09-27 --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Evan Ovadia embarque le compilateur Rust dans celui de son langage Valen pour \u00e9changer des g\u00e9n\u00e9riques entre les deux, sans passer par le C ABI.<\/p>\n","protected":false},"author":3,"featured_media":2877,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[223,221,222],"class_list":["post-2878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologie-2","tag-llvm","tag-rust","tag-valen"],"_links":{"self":[{"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/posts\/2878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/comments?post=2878"}],"version-history":[{"count":2,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/posts\/2878\/revisions"}],"predecessor-version":[{"id":2923,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/posts\/2878\/revisions\/2923"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/media\/2877"}],"wp:attachment":[{"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/media?parent=2878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/categories?post=2878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blog-actu.com\/index.php\/wp-json\/wp\/v2\/tags?post=2878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}