Category: Développement

Connecter des backends Elixir et Go avec un wrapper Crystal

2025-06-19
Connecter des backends Elixir et Go avec un wrapper Crystal

L'équipe Mozi avait besoin de connecter une nouvelle application Elixir Phoenix LiveView à un backend Go existant. Ils ont exploré les NIF et les Ports, mais ont finalement choisi l'approche du nœud C d'Erlang, en utilisant Crystal pour écrire un wrapper C afin d'améliorer la maintenabilité. Cela découple les bases de code à la compilation et à l'exécution, utilisant `Node.list` dans Elixir pour détecter la connectivité du nœud C et S6 pour les redémarrages dans le conteneur. Bien qu'il y ait une pénalité de performance lors du franchissement de la limite C/Go, cela est acceptable pour leur cas d'utilisation. Le résultat est une combinaison élégante de trois langages (Elixir, Crystal, Go) qui améliore la maintenabilité.

Développement

Mise à jour du protocole de contexte de modèle (MCP) : sécurité et fonctionnalités améliorées

2025-06-19

Le protocole de contexte de modèle (MCP) a publié une nouvelle version avec des mises à jour clés, notamment : suppression de la prise en charge du traitement par lots JSON-RPC ; ajout de la prise en charge de la sortie d’outil structurée ; classification des serveurs MCP en tant que serveurs de ressources OAuth, avec des métadonnées de ressources protégées ajoutées pour découvrir le serveur d’autorisation correspondant ; obligation pour les clients MCP de mettre en œuvre les indicateurs de ressources comme décrit dans la RFC 8707 afin d’empêcher les serveurs malveillants d’obtenir des jetons d’accès ; clarification des considérations de sécurité et des meilleures pratiques dans les spécifications d’autorisation et dans une nouvelle page de meilleures pratiques de sécurité ; ajout de la prise en charge de l’élicitation, permettant aux serveurs de demander des informations supplémentaires aux utilisateurs pendant les interactions ; ajout de la prise en charge des liens de ressources dans les résultats des appels d’outils ; obligation de spécifier la version du protocole négociée via l’en-tête MCP-Protocol-Version dans les demandes suivantes lors de l’utilisation de HTTP ; changement de SHOULD en MUST dans l’opération de cycle de vie ; et autres modifications de schéma, telles que l’ajout d’un champ _meta aux types d’interface supplémentaires, l’ajout d’un champ context à CompletionRequest et l’ajout d’un champ title pour les noms d’affichage conviviaux. Le journal des modifications complet est disponible sur GitHub.

Développement Mise à jour du protocole

Accessibilité sous Linux : Le cri d'un développeur bénévole

2025-06-19
Accessibilité sous Linux : Le cri d'un développeur bénévole

Un développeur GNOME exprime sa frustration face aux difficultés d'améliorer l'accessibilité sur le bureau Linux. Malgré des investissements importants de la Fondation GNOME et d'innombrables heures de bénévolat, les progrès sont peu reconnus, éclipsés par des critiques négatives et injustes. L'article dénonce les entreprises qui profitent de GNOME sans contribuer, appelant la communauté Linux à reconnaître le dévouement des développeurs d'accessibilité et à s'attaquer aux problèmes systémiques qui entravent le progrès.

Développement

BeeKEM : Un nouveau mécanisme d'encapsulation de clés pour la messagerie de groupe sécurisée décentralisée

2025-06-19
BeeKEM : Un nouveau mécanisme d'encapsulation de clés pour la messagerie de groupe sécurisée décentralisée

Cet article explore en profondeur BeeKEM, un nouveau mécanisme d'encapsulation de clés pour la messagerie de groupe sécurisée décentralisée. Contrairement à TreeKEM, BeeKEM améliore la récupération des mises à jour hors ligne conflictuelles et des partitions réseau en permettant la coexistence simultanée de plusieurs « époques » d'état du groupe. Lorsque les membres reçoivent des mises à jour conflictuelles, ils conservent toutes les clés reçues, les marquant comme « conflictuelles », permettant ainsi de continuer à déchiffrer et à lire les messages des époques conflictuelles. Les mises à jour se poursuivent en traitant les nœuds conflictuels comme vides. BeeKEM ouvre de nouvelles possibilités pour créer des applications locales prioritaires avec une confidentialité et une autonomie accrues.

Unregistry : Un registre d’images Docker léger pour des transferts simplifiés

2025-06-19
Unregistry : Un registre d’images Docker léger pour des transferts simplifiés

Unregistry est un registre d’images de conteneur léger qui stocke et sert les images directement depuis le stockage de votre démon Docker. La commande `docker pussh` permet de pousser des images vers des serveurs Docker distants via SSH, en transférant uniquement les couches manquantes pour une vitesse et une efficacité accrues. Évitez les complexités de Docker Hub ou des registres auto-hébergés ; utilisez simplement `docker pussh myapp:latest user@server` pour un transfert direct et simple. Il établit un tunnel SSH, exécute un conteneur Unregistry temporaire, pousse uniquement les couches manquantes, puis ferme le tunnel. Parfait pour les déploiements en production, les pipelines CI/CD et les environnements isolés.

fang : Améliorez vos applications CLI Cobra

2025-06-19
fang : Améliorez vos applications CLI Cobra

fang est une petite bibliothèque expérimentale qui fournit des améliorations intégrées pour les applications CLI basées sur Cobra. Elle possède des fonctionnalités telles que des pages d'aide et d'utilisation entièrement stylisées, des erreurs stylisées, la gestion automatique de --version, la génération de pages man (à l'aide de mango), la complétion de shell, la personnalisation des thèmes et une sortie d'utilisation silencieuse. L'intégration est simple, nécessitant des modifications de code minimales pour améliorer considérablement l'expérience utilisateur de votre CLI.

Développement

arXivLabs : Projets expérimentaux en collaboration avec la communauté

2025-06-18
arXivLabs : Projets expérimentaux en collaboration avec la communauté

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données des utilisateurs. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Dumping des modules VAC : Plongez au cœur de l'anti-triche de Steam

2025-06-18

Cet article détaille un processus d'ingénierie inverse du système anti-triche (VAC) de Valve. L'auteur analyse méticuleusement le processus de service Steam (steamservice.dll), découvrant les subtilités du chargement et de l'exécution des modules VAC. En modifiant une instruction spécifique, l'auteur force le VAC à utiliser LoadLibrary pour le chargement des modules, permettant ainsi le dump des modules VAC. Le processus est expliqué étape par étape, incluant la localisation des appels LoadLibraryW, le suivi des chaînes d'appels de fonctions et l'identification des fichiers temporaires. Le dump réussi des modules VAC et la révélation de fonctions clés à l'intérieur jettent les bases pour une analyse plus approfondie des mécanismes anti-triche du VAC.

Développement

Automatiser la portabilité de C vers Rust avec les LLMs : une stratégie étonnamment efficace

2025-06-18

Cet article détaille l'expérience de l'auteur dans l'automatisation de la portabilité de code C vers Rust à l'aide de grands modèles de langage (LLMs). Après avoir expérimenté plusieurs approches, une stratégie basée sur le tri topologique et les tests de fuzzing s'est avérée très efficace. Les symboles du code C ont été triés topologiquement, puis le LLM a généré des versions Rust de chaque symbole ainsi que des tests de fuzzing. La comparaison des sorties a vérifié l'exactitude. Cela a permis de porter avec succès la bibliothèque de compression Zopfli de C vers Rust avec des résultats identiques. Bien que non entièrement automatisé, cela a considérablement réduit le coût et l'effort, offrant une nouvelle approche pour la maintenance et les mises à jour de grandes bases de code.

(rjp.io)

S-expr : Un analyseur d’expressions S particulier

2025-06-18
S-expr : Un analyseur d’expressions S particulier

S-expr est une bibliothèque d’analyse d’expressions S avec des extensions uniques pour la syntaxe des expressions S. Elle prend en charge les chaînes de caractères et les commentaires monoligne et multiligne, et introduit un concept nouveau appelé « blocs transposés ». Les blocs transposés permettent d’écrire du code avec les lignes et les colonnes inversées, améliorant ainsi la lisibilité des expressions imbriquées complexes. Cette conception vise à équilibrer la simplicité des expressions S avec une meilleure lisibilité et expressivité du code. Bien que plus complexe que le Lisp traditionnel, elle privilégie l’équilibre entre simplicité et convivialité.

Construire des agents IA d'entreprise avec Flink SQL : connecter les LLMs aux données internes

2025-06-18

Cet article explore la construction d'agents IA d'entreprise à l'aide de Flink SQL, connectant les grands modèles de langage (LLMs) aux données et ressources internes. Pour les données structurées, la sémantique de jointure SQL de Flink SQL intègre facilement les données de bases de données externes à l'entrée du LLM. Pour les données non structurées, l'article propose la génération augmentée par la recherche (RAG), en codant les données en vecteurs stockés dans une base de données vectorielle, puis en interrogeant et en intégrant via le support de type vectoriel de Flink SQL. En utilisant l'exemple de résumé d'articles de recherche et d'intégration de recherches internes, l'article montre comment construire un système d'agent IA avec deux tâches Flink SQL : l'une met à jour le stockage vectoriel, l'autre interroge et appelle le LLM. Enfin, il mentionne l'utilisation des fonctions de table de processus (PTFs) pour intégrer la norme MCP d'Anthropic afin de construire des agents IA plus flexibles.

Développement

Améliorer la qualité de la base de connaissances pour les systèmes RAG : meilleures pratiques pour l’IA et les humains

2025-06-18
Améliorer la qualité de la base de connaissances pour les systèmes RAG : meilleures pratiques pour l’IA et les humains

Ce guide décrit les meilleures pratiques pour créer une documentation qui serve efficacement à la fois les lecteurs humains et les IA/LLM dans les systèmes de génération augmentée par la récupération (RAG). Une documentation de haute qualité améliore les réponses de l’IA et l’expérience utilisateur, créant une boucle de rétroaction positive. L’article détaille la manière dont les systèmes d’IA traitent la documentation (récupération, base de données vectorielles, génération), soulignant l’importance d’un contenu clair, concis et contextuellement complet. Les recommandations incluent l’utilisation de HTML sémantique, l’évitement des PDF, la création d’un contenu adapté aux robots d’indexation, la garantie de la clarté sémantique, la fourniture d’équivalents textuels pour les éléments visuels et le maintien de mises en page simples. Le guide aborde également les défis courants de conception de contenu, tels que les dépendances contextuelles, les lacunes de découvrabilité sémantique, les hypothèses de connaissances implicites et les dépendances d’informations visuelles. Il préconise une architecture d’information hiérarchique, des sections autonomes et la fourniture d’un contexte d’erreur avec des solutions. En fin de compte, l’objectif est une documentation à la fois lisible pour les humains et conviviale pour l’IA.

Développement documentation IA

ChatGPT : Mon générateur de sites statiques

2025-06-18
ChatGPT : Mon générateur de sites statiques

Fatigué des générateurs de sites statiques traditionnels, l'auteur a exploré plusieurs options avant de se décider pour une solution inattendue : ChatGPT ! Il suffit de copier-coller de nouveaux et anciens articles de blog dans ChatGPT pour générer les pages HTML sans effort, sans aucune configuration. Bien qu'il existe un risque que ChatGPT modifie subtilement le texte original, la simplicité et la rapidité de la méthode sont convaincantes ; cet article même a été créé de cette façon. L'auteur spécule sur le remplacement par l'IA d'outils traditionnels dans davantage de domaines, tels que les générateurs de documentation et les outils en ligne de commande.

Développement

DSC : Une bibliothèque de tenseurs compatible PyTorch et un framework d'inférence

2025-06-18
DSC : Une bibliothèque de tenseurs compatible PyTorch et un framework d'inférence

DSC est une bibliothèque de tenseurs compatible avec PyTorch et un framework d'inférence pour les modèles d'apprentissage automatique. Elle possède une API de bas niveau compatible avec C, encapsulée dans une API Python moderne similaire à NumPy/PyTorch, avec des améliorations d'ergonomie. Les principales caractéristiques incluent une API intuitive, un support intégré des réseaux de neurones, un support de plusieurs backends (CPU et CUDA), des dépendances externes minimales et aucune allocation en temps d'exécution. L'installation est simple, nécessitant uniquement un compilateur C++20 et GNU Make. L'accélération CUDA est prise en charge ; il suffit de définir les variables d'environnement pour l'activer. Les tests unitaires sont exécutés via pytest, garantissant la précision.

Développement bibliothèque de tenseurs

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-06-18
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

arXivLabs est un framework permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données utilisateur. arXiv est engagé envers ces valeurs et ne travaille qu'avec des partenaires qui les respectent. Vous avez une idée de projet qui ajoutera de la valeur à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

Comprendre le NAT : L'astuce de Linux pour pallier la pénurie d'adresses IPv4

2025-06-18

Imaginez votre réseau Wi-Fi domestique : tous les appareils partagent la même adresse IP publique. C’est grâce à la Traduction d’Adresses Réseau (NAT). Avec le nombre limité d’adresses IPv4, la NAT mappe intelligemment les IP privées sur une seule IP publique sur votre routeur, permettant à plusieurs appareils de partager une seule IP publique. Cet article explore le fonctionnement de la NAT, en examinant différents types (Full Cone, Restricted Cone, Symmetric NAT) et son implémentation sous Linux (à l’aide de nftables), illustrée par un exemple Docker. Bien que la NAT résolve temporairement le problème de l’épuisement des adresses IPv4, elle introduit des limitations telles que la rupture de la connectivité de bout en bout et la complexification du chiffrement. En fin de compte, l’adoption généralisée de l’IPv6 est la véritable solution.

Développement Réseaux

Workout.cool : La plateforme de fitness open-source renaît

2025-06-18
Workout.cool : La plateforme de fitness open-source renaît

Workout.cool est une plateforme moderne d'entraînement physique open-source, ressuscitée des cendres de son prédécesseur, workout.lol. Après l'abandon du projet original en raison de problèmes de licence vidéo, le développeur Snouzy a repris le flambeau et reconstruit la plateforme de A à Z, offrant une base de données complète d'exercices, un suivi des progrès et des plans d'entraînement personnalisés. Construite avec Next.js App Router et une architecture Feature-Sliced Design, le projet est ouvert aux contributions de la communauté. C'est un projet communautaire, par la communauté et pour la communauté, visant à fournir une plateforme fiable et facile à maintenir pour la communauté open-source du fitness.

Développement

Un Programmeur Rejette les Outils de Codage IA : Efficacité, Éthique et Environnement

2025-06-18

Un programmeur chevronné explique son refus d'utiliser les outils de codage IA, non par résistance technologique, mais par de sérieuses préoccupations concernant l'efficacité, l'éthique et l'environnement. L'auteur soutient que les gains de productivité des outils IA actuels sont discutables et qu'ils risquent d'introduire davantage d'erreurs. De plus, l'entraînement des modèles IA exerce une pression énorme sur l'environnement, et leurs sources de données soulèvent des préoccupations éthiques, notamment la violation de la propriété intellectuelle. L'auteur souligne le plaisir de la « lutte et de l'apprentissage » dans la programmation et les avantages du code écrit manuellement en termes de qualité et de maintenabilité. En fin de compte, il choisit de s'en tenir aux méthodes de programmation traditionnelles et appelle à une réglementation plus stricte de la technologie IA.

Développement

Chiffrement homomorphe et logiciel local-first : un compromis ?

2025-06-18
Chiffrement homomorphe et logiciel local-first : un compromis ?

Cet article explore les défis de l'utilisation du chiffrement homomorphe pour protéger les données privées dans les logiciels local-first. Bien que le chiffrement homomorphe permette le calcul sans déchiffrement, il introduit des surcharges importantes de performance et de stockage. L'auteur démontre les limitations pratiques du chiffrement homomorphe sur les CRDT en construisant un registre CRDT « dernière écriture gagne » chiffré homomorphiquement. L'article souligne comment le chiffrement homomorphe nécessite des opérations dans des hypothèses de pire cas, augmentant considérablement la complexité spatiale et temporelle. En fin de compte, l'auteur conclut que la sécurisation des applications local-first sans dégrader gravement la convivialité reste un problème ouvert.

Développement logiciel local-first

Explication de l'algorithme A* de recherche de chemin : de la recherche en largeur à la recherche gloutonne

2025-06-18
Explication de l'algorithme A* de recherche de chemin : de la recherche en largeur à la recherche gloutonne

Cet article explique clairement l'algorithme A* de recherche de chemin. En commençant par la recherche en largeur (BFS) simple, il introduit progressivement l'algorithme de Dijkstra (gérant les coûts de déplacement variables), la recherche gloutonne et enfin l'algorithme A*. Grâce à des diagrammes et des exemples de code, l'article montre clairement le fonctionnement et les avantages et inconvénients des différents algorithmes, en discutant de leur applicabilité dans différents scénarios tels que la recherche de chemin sur les cartes et l'IA de jeu. L'algorithme A*, en incorporant une fonction heuristique, trouve le chemin le plus court tout en améliorant l'efficacité de la recherche, ce qui en fait un algorithme de recherche de chemin populaire dans de nombreux jeux.

Ne vous moquez pas de ce que vous ne possédez pas : une meilleure façon de tester les dépendances tierces

2025-06-18
Ne vous moquez pas de ce que vous ne possédez pas : une meilleure façon de tester les dépendances tierces

Cet article traite d’un problème courant dans les tests unitaires : la gestion des dépendances tierces. En utilisant un client de registre Docker comme exemple, l’auteur démontre les inconvénients de la simulation directe des dépendances tierces (comme les clients HTTP) : les tests deviennent complexes, fragiles et difficiles à comprendre. La solution proposée consiste à introduire une fine couche d’abstraction pour découpler la logique métier des dépendances externes, simplifiant ainsi les tests et améliorant la lisibilité et la maintenabilité du code. Cette approche conduit non seulement à des tests plus propres et concis, mais améliore également la lisibilité et la maintenabilité de la logique métier elle-même. Tout en reconnaissant des exceptions, l’auteur conclut que ce principe aide à écrire des tests plus élégants et faciles à maintenir dans la plupart des cas.

Liste des fonctions de l'API native de Windows NT

2025-06-18

Cette liste comprend de nombreuses fonctions de l'API native de Windows NT, couvrant divers aspects tels que les systèmes de fichiers, la gestion des processus, la gestion des threads, la sécurité et le registre. Ces fonctions sont essentielles aux opérations de bas niveau de Windows, formant la base des interfaces d'applications de niveau supérieur. Leur compréhension est cruciale pour les programmeurs systèmes et les chercheurs en sécurité.

Développement

Scrappy : Création d'applications maison pour amis et famille

2025-06-18
Scrappy : Création d'applications maison pour amis et famille

John et Pontus ont créé Scrappy, un prototype de recherche pour créer des applications simples et personnalisées pour vous et vos amis. C'est un outil visuel similaire à Figma ou Google Slides, mais qui permet d'attacher des comportements à des objets interactifs. Vous faites glisser et déposer des objets tels que des boutons et des champs de texte, et vous ajoutez du code JavaScript pour définir leurs actions, comme enregistrer la saisie de texte en cliquant sur un bouton. Les applications Scrappy sont multijoueurs, avec un état persistant et synchronisé, ce qui rend la collaboration avec vos amis et votre famille transparente. L'objectif est de démocratiser la création de logiciels, permettant à plus de personnes de créer des applications adaptées à leurs besoins uniques.

L'éditeur de texte CLI open source de Microsoft : Edit – Léger, rapide et semblable à VS Code

2025-06-18
L'éditeur de texte CLI open source de Microsoft : Edit – Léger, rapide et semblable à VS Code

Microsoft a publié Edit, un éditeur de texte en ligne de commande open source, léger, rapide et facile à utiliser. Conçu avec une expérience utilisateur similaire à VS Code, Edit vise à combler le manque d'éditeur de texte CLI intégré dans les versions récentes de Windows. Bien que principalement destiné aux utilisateurs de Windows, Edit fonctionne également sous Linux et macOS. Son édition sans mode, son ouverture de fichiers extrêmement rapide et son ensemble de fonctionnalités minimalistes le rendent idéal pour les modifications de texte rapides. Bien qu'il manque de fonctionnalités avancées telles que la mise en évidence de la syntaxe, sa vitesse et sa simplicité en font une alternative attrayante.

Développement

Incant : Ajoutez des sorts magiques à votre code

2025-06-18
Incant : Ajoutez des sorts magiques à votre code

Incant est une nouvelle bibliothèque qui permet aux développeurs d'intégrer en toute sécurité les appels de modèles linguistiques. Elle fournit des primitives telles que `createSelector` et `createFilter` pour les opérations sur les tableaux, comme la sélection du nombre le plus élevé ou le filtrage des noms masculins. Incant lit les clés API à partir des variables d'environnement, est facile à configurer et garantit la sécurité des types, empêchant les hallucinations. Cependant, sachez que toutes les données d'entrée sont envoyées aux fournisseurs d'inférence en amont, évitez donc d'envoyer des informations personnelles ou sensibles.

Développement

Modèle de règles universelles pour les assistants de codage IA : Boostez votre flux de travail

2025-06-18
Modèle de règles universelles pour les assistants de codage IA : Boostez votre flux de travail

Fatigué du comportement incohérent de l'IA sur différents assistants de codage ? Ce modèle fournit une infrastructure robuste et multiplateforme pour améliorer votre expérience de programmation en binôme avec l'IA. Il exploite les principes établis de l'ingénierie logicielle et une documentation structurée pour garantir le fonctionnement cohérent de l'IA, une compréhension approfondie du projet et des flux de travail optimaux sur des outils tels que Cursor, CLINE, RooCode, Windsurf et GitHub Copilot. Dépassez les prototypes simples et créez des applications sophistiquées avec des partenaires IA qui comprennent vraiment votre projet.

Développement

lstr : Visualiseur d'arborescence de répertoires ultra-rapide en Rust

2025-06-18
lstr : Visualiseur d'arborescence de répertoires ultra-rapide en Rust

lstr est un visualiseur d'arborescence de répertoires minimaliste et extrêmement rapide écrit en Rust. Inspiré par la commande `tree`, lstr offre un mode interactif puissant ainsi qu'une vue classique. Il utilise l'analyse parallèle des répertoires pour maximiser la vitesse, possède une interface propre et épurée, et fournit des options pour afficher les icônes des fichiers, les permissions, les tailles et l'état Git. L'intégration avec `.gitignore`, le contrôle de la profondeur et la recherche floue (via fzf) sont également pris en charge. Vous pouvez même intégrer lstr à votre shell comme une commande `cd` visuelle. Que vous préfériez la vue classique en arborescence ou l'interface utilisateur TUI interactive, l'efficacité et le design épuré de lstr amélioreront votre flux de travail de gestion de fichiers.

Projet d'un jour de pluie : un compilateur TinyBASIC vers Go

2025-06-18

Lors d'un week-end pluvieux, l'auteur a créé un compilateur qui traduit le code TinyBASIC en Go. Utilisant nex (lexer) et goyacc (parser) de Go, le projet comporte trois étapes : l'analyse lexicale, l'analyse syntaxique et la génération de code. L'auteur détaille la grammaire et le processus de génération de code, en présentant des exemples de programmes et de sorties. Ce projet amusant et stimulant démontre l'application pratique des principes de compilation.

Développement

Plasma 6.4 : une expérience de bureau plus fluide, plus conviviale et plus puissante

2025-06-17
Plasma 6.4 : une expérience de bureau plus fluide, plus conviviale et plus puissante

KDE Plasma 6.4 est arrivé, offrant une expérience de bureau plus fluide, plus conviviale et plus puissante. Les améliorations concernent l'accessibilité, le rendu des couleurs, la prise en charge des tablettes, la gestion des fenêtres, et bien plus encore. Les fonctionnalités clés incluent des dispositions de tuiles personnalisables par bureau virtuel, un outil de capture d'écran Spectacle remanié, la visualisation des couleurs dans KRunner, et une prise en charge améliorée pour les artistes numériques et les écrans HDR. La mise à jour améliore également les notifications, les widgets et la surveillance du système. Plasma 6.4 se concentre sur la création d'un environnement de bureau plus pratique et plus efficace.

Développement

bzip2 en Rust : Plus rapide et compilation croisée simplifiée

2025-06-17
bzip2 en Rust : Plus rapide et compilation croisée simplifiée

La version 0.6.0 de bzip2, récemment publiée, utilise par défaut l'implémentation Rust, libbz2-rs-sys, offrant des améliorations de vitesse significatives pour la compression et la décompression, et simplifiant la compilation croisée. Ce travail répond à la dépendance persistante à bzip2 dans de nombreux projets, la version Rust apportant des solutions à des problèmes de compilation de longue date, tels que la compilation WebAssembly et la compatibilité Windows/Android. Les tests de référence montrent que l'implémentation Rust surpasse généralement l'implémentation C, et un audit de sécurité Miri garantit la fiabilité du code.

Développement
1 2 57 58 59 61 63 64 65 214 215