Category: Développement

Le dilemme de sécurité du vérificateur eBPF : un nouvel environnement d'exécution isolé

2025-04-15

eBPF, une technologie fondamentale du noyau Linux, fait face à des vulnérabilités de sécurité et à des défis de complexité dans son vérificateur. Les chercheurs proposent un changement de paradigme : définir les programmes BPF comme des applications en mode noyau nécessitant un isolement dédié. Un nouvel environnement d'exécution a été conçu pour isoler les programmes BPF, améliorant ainsi la sécurité et l'évolutivité d'eBPF. Cette recherche approfondit le vérificateur eBPF de Linux v6.16, révélant les propriétés de sécurité, les dilemmes de capacité et les dilemmes de correction dans son analyse de chemin complet. Un cadre de sécurité hybride combinant vérification et isolement est proposé, ouvrant la voie à un avenir plus sûr pour eBPF.

Composants de serveur React : démêler la récupération de données côté frontal

2025-04-15

Cet article explore comment les composants de serveur React résolvent les complexités de la récupération de données côté frontal. Les API REST traditionnelles ont du mal à suivre l'évolution des besoins de l'interface utilisateur, ce qui entraîne une redondance ou une insuffisance de données. L'auteur propose une approche BFF (Backend for Frontend), introduisant le concept de ViewModel côté serveur, permettant au serveur de renvoyer directement les données spécifiques dont chaque composant a besoin. En décomposant les fonctions ViewModel en unités plus petites et en utilisant la syntaxe JSX, un couplage étroit entre les composants et la logique de récupération de données est obtenu, ce qui donne une architecture frontale efficace et facile à maintenir. Cette méthode est similaire dans l'esprit à Async XHP, intégrant parfaitement la récupération de données et le rendu de l'interface utilisateur, mais elle évite les limites d'Async XHP dans les applications très interactives.

Une aventure curieuse dans l'implémentation d'un générateur de nombres aléatoires et de la fonction cosinus dans Nix purement fonctionnel

2025-04-15
Une aventure curieuse dans l'implémentation d'un générateur de nombres aléatoires et de la fonction cosinus dans Nix purement fonctionnel

Cet article détaille l'expérience de l'auteur lors de l'implémentation d'un générateur de nombres aléatoires et d'une fonction cosinus dans NixOS, une distribution Linux basée sur le langage Nix. La nature purement fonctionnelle de Nix pose des défis lorsqu'il s'agit de travailler avec l'aléatoire du système et les fonctions mathématiques standard. L'auteur explore différentes approches, notamment l'utilisation de `runCommandLocal` de Nix et des implémentations personnalisées de listes infinies, surmontant finalement les problèmes de mise en cache et d'appels de fonctions pour atteindre l'objectif. Le parcours met en lumière la flexibilité et la puissance de Nix, mais expose également certaines limitations de ses fonctionnalités.

Développement

MeshCore : Une bibliothèque légère de réseau maillé LoRa

2025-04-15
MeshCore : Une bibliothèque légère de réseau maillé LoRa

MeshCore est une bibliothèque C++ légère et portable permettant le routage de paquets multi-sauts pour les projets embarqués utilisant LoRa et d'autres radios paquet. Conçue pour des réseaux résilients et décentralisés fonctionnant sans accès à Internet, elle prend en charge divers appareils LoRa et propose des binaires précompilés pour faciliter la programmation à l'aide d'outils tels qu'Adafruit ESPTool. MeshCore équilibre simplicité et évolutivité, offrant des fonctionnalités similaires à Meshtastic et Reticulum, mais en se concentrant sur les applications embarquées. Idéal pour la communication hors réseau, la réponse aux urgences et les déploiements IoT.

Développement Réseau maillé

Resonate : Algorithme d’analyse spectrale à faible latence, faible consommation mémoire et faible coût de calcul

2025-04-15

Resonate est un algorithme à faible latence, faible encombrement mémoire et faible coût de calcul pour évaluer les informations spectrales pertinentes sur le plan perceptif des signaux audio (et autres). Il s’appuie sur un modèle de résonateur utilisant la moyenne mobile exponentiellement pondérée (EWMA) pour accumuler les contributions du signal autour des fréquences de résonance. Sa formulation itérative compacte permet des mises à jour efficaces avec un minimum d’opérations arithmétiques par échantillon, sans nécessiter de mise en mémoire tampon. Resonate calcule en temps réel des estimations du contenu spectral pertinentes sur le plan perceptif ; la mémoire et la complexité de calcul par échantillon évoluent linéairement avec le nombre de résonateurs, indépendamment du nombre d’échantillons d’entrée. Des implémentations open source sont disponibles en Python, C++ et Swift, ainsi que des applications de démonstration.

Développement

LightlyTrain : Entraînement de modèles plus rapide, sans étiquettes nécessaires

2025-04-15
LightlyTrain : Entraînement de modèles plus rapide, sans étiquettes nécessaires

LightlyTrain apporte le pré-entraînement auto-supervisé aux pipelines de vision par ordinateur du monde réel. Il utilise vos données non étiquetées pour réduire considérablement les coûts d'étiquetage et accélérer le déploiement du modèle. Il s'intègre facilement aux workflows existants ; quelques lignes de code suffisent pour pré-entraîner des modèles sur vos données d'images et de vidéos non étiquetées à l'aide de diverses architectures compatibles avec des bibliothèques telles que Torchvision, Ultralytics et TIMM. Évolutif à des millions d'images, LightlyTrain améliore considérablement les performances du modèle pour les petits et les grands ensembles de données, vous permettant d'exporter des modèles pour un ajustement fin ou une inférence. Aucune expertise en apprentissage auto-supervisé n'est requise.

Chroma : Simulation du daltonisme pour une meilleure accessibilité dans les jeux

2025-04-15
Chroma : Simulation du daltonisme pour une meilleure accessibilité dans les jeux

Chroma est un outil conçu pour simuler différents types de daltonisme, aidant les développeurs de jeux et les équipes d'accessibilité à tester les expériences de jeu pour les utilisateurs daltoniens. Il simule trois types principaux : protanopie, deutéranopie et tritanopie, offrant de hautes performances, une grande précision et une interface conviviale. Chroma fonctionne sur n'importe quel jeu, quel que soit le moteur, fournissant une simulation en temps réel, des captures d'écran faciles et des paramètres personnalisables. Un problème connu lors de la construction CMake implique une bibliothèque CPPWinRT obsolète ; il est recommandé d'utiliser Visual Studio 2022 ou d'installer le package NuGet Microsoft.Windows.CppWinRT.

Développement simulation du daltonisme

SourceHut se défend contre le scraping agressif des LLM

2025-04-15

SourceHut, une plateforme dédiée au logiciel open source, lutte activement contre le scraping agressif des données par les grands modèles de langage (LLM). Elle affirme que les entreprises de LLM n'ont pas le droit aux données de ses utilisateurs et a explicitement déclaré qu'elle ne conclurait aucun accord de partage de données avec aucune entreprise, même moyennant rémunération. SourceHut a déployé Anubis pour protéger ses services et a mis à jour ses conditions d'utilisation pour limiter strictement le scraping des données, autorisant uniquement des utilisations telles que l'indexation des moteurs de recherche, la recherche en accès ouvert et l'archivage. Elle souligne que les données appartiennent à ses utilisateurs et que sa responsabilité est de garantir que les données sont utilisées dans le meilleur intérêt de ses utilisateurs, et non à des fins commerciales ou pour entraîner des modèles LLM.

Développement

PgDog : Un proxy intelligent pour PostgreSQL avec sharding

2025-04-15
PgDog : Un proxy intelligent pour PostgreSQL avec sharding

PgDog est un proxy réseau qui intercepte toutes les communications entre les clients et les serveurs PostgreSQL, comprend le SQL pour déduire les destinations des requêtes et ne nécessite aucune modification du code de l'application. Il analyse les requêtes SQL, extrait les clés de sharding, utilise la fonction de hachage de partition intégrée de PostgreSQL et achemine les requêtes vers le shard de base de données correct. L'article détaille comment PgDog gère les protocoles simples et étendus, les requêtes multi-shards et les opérations COPY distribuées, permettant en fin de compte le sharding de PostgreSQL et une vitesse d'ingestion de données à l'échelle linéaire.

Développement

Rust : Un double tranchant d'efficacité et de défis

2025-04-15
Rust : Un double tranchant d'efficacité et de défis

L'auteur partage son expérience de deux ans passés à utiliser Rust pour écrire le backend d'un produit SaaS B2B. Rust offre des performances exceptionnelles, des outils excellents, la sécurité des types et des mécanismes robustes de gestion des erreurs. Cependant, le système de modules et les performances de compilation présentent des défis. Bien que le vérificateur d'emprunt soit puissant, il a une courbe d'apprentissage abrupte. La programmation asynchrone, bien que complexe, offre des performances élevées. Globalement, l'expérience Rust est positive, mais nécessite une attention particulière aux compromis.

Développement

arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

2025-04-15
arXivLabs : Projets expérimentaux avec des collaborateurs communautaires

arXivLabs est un cadre qui permet aux collaborateurs de développer et de partager de nouvelles fonctionnalités 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 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

Visionneuse de journaux géants : Parcourez instantanément des fichiers texte de 4 To

2025-04-15
Visionneuse de journaux géants : Parcourez instantanément des fichiers texte de 4 To

Fatigué d'attendre l'ouverture de fichiers journaux énormes ? `giant-log-viewer` charge instantanément des fichiers texte jusqu'à 4 To avec une empreinte mémoire minuscule, en utilisant seulement ~80 Mo de mémoire heap JVM. Il prend en charge l'encodage UTF-8 et ASCII, mais présente des limitations : il ne gère pas les lignes de plus de 1 Mo, les emojis ou les systèmes sans interface graphique ; il ne fonctionne actuellement que sous Windows, macOS et Linux. Bien qu'il ne soit pas aussi riche en fonctionnalités que `less`, il est parfait pour parcourir rapidement des journaux géants par glisser-déposer ou raccourcis clavier. Le projet est open source sur GitHub, et les dons sont les bienvenus pour aider le développeur à signer les exécutables.

Pourquoi les projets open source importants ne devraient pas utiliser GitHub

2025-04-15

Des milliers de projets open source cruciaux restent sur GitHub malgré le rachat par Microsoft, soulevant de sérieuses inquiétudes quant au contrôle et à la sécurité. L'auteur soutient que l'hostilité passée de Microsoft envers l'open source et ses acquisitions comme npm révèlent une stratégie de contrôle, et non un soutien véritable. L'article encourage la migration vers des serveurs Git auto-hébergés ou des alternatives indépendantes comme Codeberg, NotABug et sourcehut pour garantir l'indépendance et la sécurité, évitant ainsi la dépendance à une seule entité – Microsoft – pour le sort du code vital.

Développement

Utilitaire de recherche ASCII en Ada : Guide complet

2025-04-15

Cet article détaille la création d’un utilitaire de recherche ASCII en ligne de commande écrit en Ada. L’utilitaire imprime la table ASCII complète ou, étant donné une valeur hexadécimale, binaire, octale ou décimale, fournit le code et le nom du caractère ASCII correspondant. L’auteur guide méticuleusement le lecteur tout au long du processus de développement, en couvrant la configuration de l’environnement, l’implémentation du code et la gestion des erreurs. Un lien vers le code source complet sur GitHub est fourni. Cet article convient aux lecteurs ayant une certaine expérience de la programmation et offre des informations précieuses sur la programmation Ada et le développement d’outils en ligne de commande.

Développement

MCP-Shield : Protection de vos serveurs de protocole de contexte de modèle

2025-04-15
MCP-Shield : Protection de vos serveurs de protocole de contexte de modèle

MCP-Shield est un outil permettant de scanner et de détecter les vulnérabilités de vos serveurs MCP (Protocole de contexte de modèle). Il identifie les risques de sécurité tels que les attaques par empoisonnement d'outils, les canaux d'exfiltration de données et les escalades d'origine croisée. L'outil prend en charge plusieurs méthodes de configuration et intègre en option l'IA Claude d'Anthropic pour une analyse plus approfondie. Les schémas de vulnérabilité courants détectés incluent l'empoisonnement d'outils avec des instructions cachées, l'ombrage d'outils et la modification de comportement, les canaux d'exfiltration de données et les violations d'origine croisée. Par exemple, il peut identifier un outil de calculatrice qui tente secrètement d'accéder à des clés privées SSH. MCP-Shield vise à aider les développeurs et les auditeurs de sécurité à sécuriser leurs serveurs MCP et prend en charge l'analyse avant l'ajout de nouveaux serveurs, pendant les audits de sécurité, pendant le développement et après les mises à jour.

Casseur de logique d'égalité UUID : force brute sur AES-256-CBC

2025-04-15
Casseur de logique d'égalité UUID : force brute sur AES-256-CBC

Une boîte à outils de décryptage logique de champ compacte qui effectue une attaque par force brute sur des fichiers AES-256-CBC chiffrés avec UUID en utilisant une initialisation basée sur l'égalité : xy = x / y. Cela démontre une recherche déterministe dans des espaces d'entropie définis. Une démo génère un fichier chiffré avec UUID avec un suffixe structuré. `uuid_demobreaker.py` analyse ensuite linéairement l'espace UUID, en utilisant l'égalité comme une « allumage » logique – et non une heuristique – pour guider la recherche. Le casseur ne devine pas, ne filtre pas et n'utilise pas de raccourcis probabilistes ; il définit et explore directement l'espace de recherche.

Développement

Exécutez Linux dans votre navigateur : JSLinux le rend possible

2025-04-15

JSLinux vous permet d'exécuter Linux et d'autres systèmes d'exploitation directement dans votre navigateur ! Le projet prend en charge divers systèmes, notamment Alpine Linux basé sur x86, Windows 2000 et FreeDOS, ainsi que Buildroot et Fedora basés sur riscv64. Les utilisateurs peuvent choisir entre les modes d'interface console ou graphique, offrant une plateforme expérimentale pratique pour les développeurs et les passionnés. Cela représente une avancée significative dans l'émulation de systèmes basée sur le Web.

L'essor des outils de développement IA : la fin du développement front-end ?

2025-04-15
L'essor des outils de développement IA : la fin du développement front-end ?

Il y a deux ans, des prédictions ont émergé selon lesquelles l'IA remplacerait les développeurs de logiciels humains. Aujourd'hui, les outils d'IA jouent un rôle de plus en plus important dans le développement de logiciels, mais ils fonctionnent davantage comme des assistants que comme des remplaçants. Bien que l'IA puisse générer du code, des développeurs humains sont toujours nécessaires pour l'orientation, l'édition et l'amélioration. De nombreuses tentatives de remplacement complet des développeurs par l'IA ont échoué, car l'IA a des difficultés avec les tâches complexes et les erreurs subtiles. Les outils d'IA augmentent l'efficacité, mais n'éliminent pas le besoin de développeurs humains. Le marché du travail actuellement difficile est dû en partie à des facteurs macroéconomiques et à des idées fausses sur l'IA, et non à ce que l'IA remplace réellement les développeurs. L'avenir impliquera probablement une collaboration plus étroite entre l'IA et les développeurs humains, obtenant un effet synergique.

Développement

Ingénierie inverse d'un appareil domestique intelligent ESP32 : contrôle à distance et intégration avec Home Assistant

2025-04-15
Ingénierie inverse d'un appareil domestique intelligent ESP32 : contrôle à distance et intégration avec Home Assistant

Obnubilé par l'idée de connecter tous ses appareils à Home Assistant, l'auteur s'est attaqué à un purificateur d'air élégant contrôlable uniquement via son application propriétaire. Pour parvenir à une automatisation parfaite, il a procédé à une ingénierie inverse de l'appareil basé sur ESP32. L'analyse de l'application a révélé une connexion WebSocket à un serveur cloud. En interceptant le trafic réseau et en utilisant un proxy UDP pour le transférer au serveur cloud, les paquets UDP ont été captés. Ces paquets étaient chiffrés. Le démontage de l'appareil a révélé un microcontrôleur ESP32-WROOM-32D ; le micrologiciel a été extrait à l'aide d'esptool. L'analyse a révélé l'utilisation de la bibliothèque mbedtls pour le chiffrement, identifiant AES-128-CBC comme algorithme. Enfin, un script Node.js a été écrit pour réaliser une attaque man-in-the-middle (MITM), intégrant l'appareil à Home Assistant.

Développement

L'illusion du « codage ambiance » : programmes vs. produits

2025-04-15
L'illusion du « codage ambiance » : programmes vs. produits

Cet article critique la notion populaire de « codage ambiance », arguant que beaucoup dans le secteur de la technologie confondent programmes et produits. Les programmes sont des scripts rapides et sommaires qui résolvent des tâches spécifiques, souvent dépourvus de robustesse et de compatibilité multiplateforme. Les produits, cependant, exigent une conception méticuleuse, tenant compte de l'encodage, de l'internationalisation, de la concurrence, de l'authentification, de la télémétrie, de la facturation, de la marque, du support mobile et du déploiement. Les outils d'IA permettent la création rapide de programmes, mais cela est fondamentalement différent du développement de produits, une tâche beaucoup plus complexe.

Construire l'authentification OTP à partir de zéro : démêler HOTP et TOTP

2025-04-15
Construire l'authentification OTP à partir de zéro : démêler HOTP et TOTP

Cet article plonge au cœur du fonctionnement des algorithmes de mot de passe à usage unique (OTP), HOTP et TOTP. Partant de l'expérience de l'auteur dans la mise en œuvre de l'authentification au travail, il explique les avantages en matière de sécurité des OTP et détaille le processus de génération d'OTP basé sur HMAC, notamment le hachage des clés, les calculs d'horodatage et la génération finale du code. Une application de démonstration créée par l'auteur est également fournie pour permettre aux lecteurs d'apprendre et de tester.

Développement

ClipCapsule : Un gestionnaire de presse-papiers minimaliste pour Linux

2025-04-14
ClipCapsule : Un gestionnaire de presse-papiers minimaliste pour Linux

ClipCapsule est un gestionnaire de presse-papiers minimaliste pour Linux, développé avec Go et WailsJS. Il améliore la productivité en permettant de gérer et de basculer entre les entrées du presse-papiers en utilisant uniquement des raccourcis clavier – pas besoin de souris ni d'interface graphique. Actuellement en développement, l'interface graphique doit être ouverte pour que les raccourcis fonctionnent, mais un démon en arrière-plan est en cours de développement pour un fonctionnement transparent. Les principales fonctionnalités incluent un flux de travail priorisant le clavier, l'historique du presse-papiers, le réordonnancement dynamique et le stockage local uniquement. L'installation implique de cloner le dépôt, d'installer Wails et de compiler l'application, ce qui peut nécessiter des privilèges sudo ou une configuration manuelle de l'accès au périphérique d'entrée du clavier.

Modèle de segmentation de filigrane open source de Diffusion Dynamics : la technologie au cœur de clear.photo

2025-04-14
Modèle de segmentation de filigrane open source de Diffusion Dynamics : la technologie au cœur de clear.photo

Diffusion Dynamics a rendu publique la technologie centrale de son produit de suppression de filigrane, clear.photo : un modèle de segmentation de filigrane. Ce modèle d’apprentissage profond génère des masques qui mettent en évidence les zones du filigrane, excellant dans la segmentation des filigranes basées sur des logos. Le projet fournit un workflow complet pour l’entraînement et l’inférence, incluant la génération de jeux de données, l’entraînement de modèles et le post-traitement, et prend en charge l’ajustement fin sur les puces Apple M-series. Une caractéristique clé est sa stratégie d’augmentation des données qui randomise les paramètres du filigrane, ce qui conduit à des performances robustes. L’objectif est de fournir une base claire et facilement modifiable pour la construction d’outils plus complexes.

Podman Quadlets : Orchestration légère de conteneurs

2025-04-14
Podman Quadlets : Orchestration légère de conteneurs

Kubernetes peut être excessif pour les cas d'utilisation à plus petite échelle ou le développement. Podman Quadlets offre une alternative légère, utilisant systemd pour gérer les conteneurs de manière déclarative et simplifier le déploiement d'applications multi-conteneurs. Des fichiers de configuration simples (*.container, *.pod, *.image) permettent de créer, démarrer et gérer des conteneurs, y compris des fonctionnalités telles que les redémarrages automatiques. L'extension Podman Quadlet de Podman Desktop améliore la convivialité avec une interface visuelle pour gérer les Quadlets, y compris la génération, la modification et l'affichage des journaux, rendant la gestion des conteneurs plus efficace et moins complexe.

Développement

Cours intensif d'échantillonnage de Monte Carlo : échantillonnage par rejet et changement de coordonnées

2025-04-14

Cet article présente deux techniques d'échantillonnage cruciales dans les méthodes de Monte Carlo : l'échantillonnage par rejet et le changement de coordonnées. L'échantillonnage par rejet échantillonne une région plus simple et filtre les échantillons en fonction d'une probabilité d'acceptation pour réaliser l'échantillonnage d'une région complexe. L'article fournit une dérivation détaillée de la fonction de densité de probabilité pour l'échantillonnage par rejet et l'étend aux distributions non uniformes. Le changement de coordonnées utilise le déterminant jacobien pour mapper les échantillons d'une région simple à une région complexe, permettant un échantillonnage efficace. L'article utilise le disque unitaire comme exemple, montrant comment réaliser l'échantillonnage uniforme en utilisant la transformation de coordonnées polaires. Les deux méthodes présentent des avantages et des inconvénients ; l'échantillonnage par rejet est simple et facile à comprendre, mais son efficacité dépend de la probabilité d'acceptation ; le changement de coordonnées est efficace, mais nécessite de trouver des transformations de coordonnées appropriées.

Optimisation du pilote OLED ESP32 : vitesse contre prise en charge des polices

2025-04-14
Optimisation du pilote OLED ESP32 : vitesse contre prise en charge des polices

L'auteur a expérimenté plusieurs pilotes pour un écran OLED SSD1306 sur un ESP32, en optant finalement pour un pilote obsolète et modifié. Au départ, il a utilisé un pilote Espressif, mais celui-ci ne prenait en charge qu'une seule police. Des tentatives ultérieures avec LVGL et U8G2 ont souffert de faibles fréquences d'actualisation. L'auteur est revenu au pilote obsolète et a adapté ses appels d'API I2C pour la compatibilité avec la version la plus récente d'ESP-IDF, atteignant une fréquence d'actualisation de 40 Hz. Pour ajouter la prise en charge des polices, la bibliothèque nvbdflib a été intégrée, analysant directement les polices BDF et dessinant sur la mémoire tampon d'image, ce qui a donné une actualisation à haute vitesse et la capacité d'utiliser des polices personnalisées.

Développement

Guide Pragmatique de la Programmation Fonctionnelle : Macro plutôt que Micro

2025-04-14

Cet essai plaide contre une application purement microscopique des principes de la programmation fonctionnelle dans les langages impératifs. Tout en reconnaissant les avantages de la programmation fonctionnelle, l’auteur soutient que le remplacement obsessionnel des boucles for par des maps et des reduces sans s’occuper des préoccupations architecturales de haut niveau produit souvent des gains minimes, voire des résultats négatifs. La vraie valeur réside dans l’adoption de principes macroscopiques tels que la gestion des mutations, la simplification de l’architecture et le renforcement des systèmes de types. L’auteur préconise une approche pragmatique, en privilégiant la conception architecturale et la qualité du code plutôt que l’adhésion stricte aux micro-styles fonctionnels, suggérant qu’un portefeuille de solutions 80/20 surpasse souvent une approche 100/100.

Développement

Implémentation d'un moteur PEG simple en Janet : 10 lignes pour une puissance d'analyse

2025-04-14

Cet article explore l'implémentation d'un moteur de grammaire d'expression d'analyse (PEG) dans le langage de programmation Janet. En partant des concepts fondamentaux des PEG, l'auteur montre comment construire un analyseur PEG performant avec un code étonnamment concis. La fonction principale `match-peg` est expliquée en détail, illustrant comment étendre ses capacités grâce à l'ajout d'opérateurs et à la récursivité, aboutissant à un analyseur de dates au format ISO 8601. Bien qu'il présente des limites, ce code illustre efficacement les principes et l'implémentation des PEG, offrant des informations précieuses aux personnes qui apprennent les PEG et la conception de compilateurs.

Développement Analyseur

Profileur C++ en un seul en-tête : utl::profiler

2025-04-14
Profileur C++ en un seul en-tête : utl::profiler

utl::profiler est une bibliothèque de profilage C++ à en-tête unique qui utilise des macros simples pour mesurer le temps d'exécution des segments de code et construire automatiquement un graphe d'appels. La bibliothèque offre des fonctionnalités telles que des options de style personnalisables, la sécurité des threads et la prise en charge des threads détachés. Elle réduit considérablement la surcharge en utilisant des intrinsèques x86. La bibliothèque prend également en charge le style personnalisé et l'exportation des résultats vers un fichier.

Inférer les types TypeScript à partir de messages Protobuf sans génération de code

2025-04-14
Inférer les types TypeScript à partir de messages Protobuf sans génération de code

protobuf-ts-types vous permet de définir des types de message indépendants du langage au format proto et d'inférer directement les types TypeScript sans génération de code. Il utilise intelligemment les types littéraux de modèle de TypeScript. Bien qu'il s'agisse actuellement d'une preuve de concept et qu'il ne prenne pas en charge les services, les RPC, les champs oneof et map et les importations, il offre un grand potentiel pour simplifier l'intégration de Protobuf avec TypeScript.

Développement Inférer les types
1 2 112 113 114 116 118 119 120 214 215