Augmented docs - a love letter to rustdoc and docs.rs

Docs are one of the superpower of Rust, thanks to the tooling and the central platform hosting them. Let’s take it to the next level!

After a quick look at some of the most known features of rustdoc and docs.rs, we’ll review the guidelines and explore some of the advanced features available, like interacting with the #[doc] attribute directly or scraping examples.

We’ll then look at how to enrich the docs with some crates from the ecosystem, like aquamarine for graphs, katex-doc for mathematical expression or document-features for automatic feature documentation, or with some templating, and see how far we can take it to have a complete documentation.

To finish, we’ll dip our toes into documentation theory, through the Diátaxis framework and the Good Docs Project, check how rustdoc fit in those, and how other tools like mdbook or zola can complement it.

Catching Rendering Regressions on all Platforms

How to test a game engine on macOS, Linux, Window, iOS, Android, WebGL2, WebGPU? Bevy does it (almost) all, and in CI!

Let’s talk about the tooling Bevy provides to help tests, and the tools used to run those tests, like GitHub actions, Pixel Eagle and the resulting reporting page.

SQLite en Wasm... pourquoi faire et comment?

SQLite est partout… de la configuration de serveurs aux applications mobiles. Depuis février 2023, SQLite est aussi disponible en Wasm, et est maintenant directement intégré dans les principaux navigateurs.

Côté mobile, les bénéfices de l’utilisation SQLite sont une réduction des échanges réseaux, une meilleure disponibilité et un respect de la vie privée. En l’intégrant dans vos applications web, vous pourrez profitez des mêmes avantages.

Venez explorer les possibilités d’intégrations de SQLite et des autres méthodes de stockage dans les navigateurs: les APIs WebStorage et IndexedDB, et l’OriginPrivateFileSystem.

You don’t need the bevy editor you think you need but the one you didn’t know was possible

Bevy doesn’t have an editor, but initiatives and prototypes are starting… which means it’s the perfect time to look at what others are doing.

Outside of the common scene view that all game engine editors seem to have, what would be an ECS engine editor? What does it means to edit entities, components and systems?

Bevy has a few plugins that try to explore this space, but we should also look at the competition, like the Flecs Explorer or Unity DOTS Editor.

Bevy, WASM and the Browser

Bevy is a game engine using an Entity - Component - System architecture and a modern renderer. One of its main goal is to be cross-platform, and that means supporting WASM running in the browser!

We’ll see how Bevy uses a few crates to interact with the browser:

  • winit to get a canvas and all the interactions
  • wgpu to render, in WebGL2 for now, and soon WebGPU
  • web-sys (and js-sys) to handle some (light) multithreading and game assets access

And the limitations, around multithreading, renderer, native library usage and networking.

We’ll finish with some patterns on how to interact between a Bevy game and the JS world of the browser.

Créer un jeu cross plateforme... en Rust!

Avez vous déjà codé la lumière ? Le plus difficile, c’est les ombres !

L’écosystème du jeu vidéo en Rust est en plein boom ! Après avoir conquis les amateurs et indépendants, même les grands studios s’y mettent.

Après un tour de quelque projets Rust dans le monde du jeu vidéo (Amethyst, Macroquad, rg3d, Nannou, …), nous nous concentrerons sur le moteur de jeu Bevy et ce qu’il propose :

  • un ECS (Entity Component System) s’appuyant sur le système de type Rust
  • un moteur de rendu moderne modulable grâce à un graph de rendu
  • un support cross plateforme grâce à webgpu Sur ces bases et une super communauté, en un an et demi d’existence Bevy est rentré dans le top 5 des moteurs de jeu open source sur GitHub.

Venez explorer les idées de Pipeline Rendering, shaders, ECS, Global Illumination, Ray Tracing, Clustered Forward Rendering et tant d’autres!

Et comment, grâce à un moteur de jeu qui vous semblera rapidement naturel, vous pourrez enfin faire ce jeu auquel vous rêvez depuis tout petit….

IoT open source à la maison

Finalement, l’IoT à la maison, c’est un peu comme une prod à gérer…

Il y a les utilisateurs mécontents, le legacy à gérer, … Et avec les protocoles qui se multiplient, c’est pas parti pour se simplifier ! On commence par une ampoule connectée, et on finit avec le chauffage par zone et des volets connectés qui s’ouvrent en fonction de l’ensoleillement.

ZigBee, Z-Wave, 433MHz, fil pilote, signaux infrarouges, api HTTP, … petit tour d’horizon des protocoles utilisés, et des outils pour rationaliser sa maison : Home Assistant, ESPHome, Pi-hole, Node-RED, mais aussi Ansible, Telegraf, InfluxDB, Grafana, Telegram