Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Iron Wolf - Wolfenstein 3D recréé en Rust et jouable en ligne

Wolfenstein 3D, pour ceux qui n'étaient pas nés en 1992, c'est le FPS qui a tout lancé. Le jeu de Carmack et sa bande chez id Software, qui a directement mené à DOOM l'année suivante.

Eh bien un dev Rust vient de le recréer de zéro, et c'est 100% jouable dans le navigateur.

Iron Wolf , c'est donc le projet de Michael Bohn, un allemand, qui bosse sur ce truc depuis mai 2021, soit près de cinq ans. On n'est donc pas sur un portage vibe codé à l'arrache. C'est vraiment une réécriture complète.

La version web d'Iron Wolf tournant dans le navigateur

Le bonhomme a carrément créé ses propres crates Rust pour émuler la carte VGA et la puce sonore OPL. J'ai d'abord cru qu'il réutilisait une lib existante, mais non, il a tout écrit from scratch en Rust. Bah ouais, développer ses propres librairies d'émulation hardware juste pour un side-project, what else ?? Je trouve que ça force le respect !

Le truc cool, c'est que la version shareware du jeu est incluse directement dans le dossier testdata/ du repo. Du coup sur macOS, Linux ou Windows, un git clone + just run-sdl-shareware et hop, vous voilà dans les couloirs du château. Attention sur Ubuntu 22.04, faut avoir libsdl2-dev d'installé avec apt install libsdl2-dev, sinon la compilation plante avec une erreur cryptique. Par contre, si vous êtes sur la version Ubuntu 24.04, là ça passe direct. Et si vous avez les fichiers WAD du jeu complet qui traînent sur un vieux CD-ROM quelque part, ce sera encore mieux car la version web permet de les uploader pour jouer à l'intégrale.

Ça tourne donc en WebAssembly sur wolf.ironmule.dev , sans plugin, juste Chrome ou Firefox récent. Voilà, si vous vous demandiez si on peut encore jouer au classique en 2026... la réponse est carrément oui !

Pour les curieux, le raycasting, cette technique de rendu qu'utilisait Wolfenstein 3D, est réimplémenté très fidèlement puisque le moteur de Michael dessine les murs comme le code de Carmack le faisait à l'époque... sauf que là ça tourne dans un onglet de navigateur. Vos fichiers de jeu sont également stockés localement via IndexedDB et un service worker gère le mode hors-ligne ce qui est très pratique pour jouer en avion ou quand on est chez Free (je décoooonnnne, humour humour).

Le projet en est à sa version 0.9.0, sous licence GPL-3.0 et si les classiques d'id Software recréés par des passionnés vous branchent, sachez que DOOM aussi a ses portages bien sympas.

Bref, si la nostalgie du raycasting vous titille, allez faire un tour sur wolf.ironmule.dev.

RustPython – Python puissance Rust

Un interpréteur Python 3 flambant neuf, entièrement réécrit en Rust, ça claque, non ? Pour ceux qui hibernent, Rust, c’est le langage de programmation qui monte, qui monte et qui cartonne notamment grâce à sa rapidité légendaire et son bon niveau de sécurité.

Et en fusionnant avec Python, on obtient le meilleur des deux mondes, puisque ça permet d’utiliser Python comme un langage de script dans vos applications Rust. Vous pourrez ainsi, grâce à RustPython, profiter de la simplicité et de l’expressivité de Python, tout en bénéficiant des performances et de la robustesse de Rust.

RustPython peut aussi être compilé en WebAssembly, ce qui permet d’avoir du Python directement dans votre navigateur, sans installer quoi que ce soit et ainsi, votre code s’exécutera à la vitesse de la lumière. Évidemment ce projet est open-source et libre comme l’air et pour l’utiliser, c’est simple comme bonjour.

Tout d’abord, assurez-vous d’avoir installé Rust sur votre machine. Si ce n’est pas le cas, filez sur rustup.rs dare-dare ! Ensuite, clonez le dépôt GitHub de RustPython :

git clone https://github.com/RustPython/RustPython

Placez-vous dans le répertoire RustPython fraîchement cloné, puis lancez la démo :

cd RustPython
cargo run --release demo_closures.py

Et voilà, vous venez d’exécuter du code Python à la vitesse du son grâce à RustPython ! Notez que cet outil dispose également d’un compilateur JIT expérimental qui compile les fonctions python en code rust natif.

Si vous avez envie d’en savoir plus, rendez-vous sur https://rustpython.github.io.

Source

Lapce – L’IDE codé en Rust qui dépote

Si vous êtes un développeur à la recherche d’un nouvel éditeur de code, vous allez être content avec Lapce dispo pour Windows, Linux et macOS. Encore en version pré-alpha, Lapce n’a d’autres ambitions que de venir chatouiller les orteils de Visual Studio Code.

Pour le moment, on en est loin, mais cet éditeur a quand même quelques atouts dans sa manche. Tout d’abord, son interface graphique et ses performances sont au top du top de l’optimisation grâce au langage dans lequel il est codé, à savoir Rust.

En effet, grâce à l’accélération GPU intégrée à l’interface graphique native, les lags au lancement de l’éditeur et lors de la saisie sont totalement éliminés. Pour les développeurs de Lapce, tout ralentissement lors de la frappe est considéré comme un bug et sera donc résolu.

L’une des fonctionnalités les plus intéressantes de Lapce est la possibilité de se connecter à une machine distante en toute transparence via SSH, pour bénéficier d’une expérience « locale ». Cela vous permet de profiter d’un environnement identique à votre serveur de production ou d’exploiter toutes les performances de la machine distante. Idéal pour les développeurs travaillant en équipe ou en télétravail.

Côté mise en forme du code, Lapce utilise Tree-sitter pour la coloration syntaxique, ce qui est une solution bien plus rapide et efficace que les techniques à l’ancienne basées sur les expressions régulières (regex). De plus, la prise en charge intégrée du protocole LSP (Language Server Protocol) permet à Lapce de proposer de la complétion de code, des diagnostics ainsi que des actions éventuelles sur le code analysé en temps réel.

Si vous êtes un utilisateur de Vim, bah déjà bon courage. Mais surtout, ne vous inquiétez pas, Lapce intègre nativement une expérience d’édition similaire à Vim, sans avoir besoin d’installer de plugin. Vous n’avez qu’à activer l’option d’édition modale dans les paramètres de l’IDE et vous pourrez utiliser tous vos raccourcis Vim comme un bon tröll velu.

Pour encore plus de personnalisation, vous pouvez aussi écrire vos propres plugins pour Lapce en utilisant n’importe quel langage de programmation capable d’être compilé pour produire du WASI (WebAssembly System Interface). Ainsi, vous pouvez choisir un langage de programmation que vous aimez pour créer des plugins rapidement sans apprendre un truc spécifique.

Enfin, Lapce vous permet de lancer un terminal directement dans le répertoire de votre espace de travail, sans quitter l’éditeur. Cette fonction simplifie la gestion des fichiers et des dossiers, rendant votre workflow encore plus fluide.

Bref, bien que Lapce soit encore en phase pré-alpha, et loiiiin d’égaler Visual Studio Code, cet éditeur open source écrit en Rust, est promis à un bel avenir chez tous ceux pour qui les perfs sont très importantes (tout le monde quoi…).

Rendez-vous sur lapce.dev pour en savoir plus ! Et la doc est ici.

Merci à Lorenper

Infinite Mac – Mac et NeXT dans votre navigateur

Aujourd’hui, je vais vous parler d’un truc qui va vous faire voyager dans le temps façon Retour vers le Futur : Infinite Mac. Il s’agit d’un projet imaginé par le génial Mihai Parparita, qui permet de faire tourner d’anciens systèmes Mac et NeXT directement dans votre navigateur web.

Mihai a utilisé WebAssembly pour porter tout un tas d’émulateurs comme Mini vMac, Basilisk II, SheepShaver, DingusPPC et même Previous. Un sacré défi qui lui a demandé pas mal de bidouilles pour que tout soit compatible. Avec ça, vous allez pouvoir revivre les grandes heures de Mac OS, de System 6 jusqu’à Mac OS 9 en passant par System 7 et Mac OS 8. Et pour les fans de Steve Jobs, y a même du NeXTStep de la 0.8 de 1988 jusqu’à OPENSTEP 4.2 sorti en 1997 !

Le truc chouette, c’est que c’est hyper simple à utiliser. Vous allez sur le site infinitemac.org, vous choisissez votre version préférée (ou custom) et hop, vous voilà propulsé 20 ou 30 ans en arrière, à l’époque où les ordis avaient encore des disquettes et où on surfait avec Netscape Navigator.

D’ailleurs, c’est marrant de voir à quel point NeXTStep était en avance sur son temps par rapport au Mac de la même époque. Genre en 1988, y’avait d’un côté System 6 qui faisait un peu pitié et de l’autre ce monstre de puissance et d’innovation qu’était le Cube de Next. Pas étonnant que notre Steve national ait fini par racheter la boîte pour créer Mac OS X par la suite.

Et vous saviez qu’à partir de NeXTStep 3.0, on pouvait lire et écrire sur les disques HFS des Mac ? Ça veut dire qu’en 2024, on peut s’échanger des fichiers entre les machines NeXT et Mac d’Infinite Mac sans aucun souci. C’est beau.

Bref, un chouette projet à explorer, surtout si vous n’avez pas connu cette époque ou si vous cherchez à retrouver les sensations de votre jeunesse d’informaticien. Infinite Mac c’est par ici !

Source de l’image + Source

❌