À propos du projet

asupersync est un runtime asynchrone pour Rust conçu autour du principe que la correction doit être structurelle plutôt qu'imposée à l'exécution. Il fournit une base pour écrire du code Rust asynchrone où les propriétés de sûreté sont intégrées au système de types et au modèle de propriété des tâches. Piliers de conception clés : - Tâches liées à des régions : les tâches sont rattachées à des régions explicites, ce qui donne aux développeurs un contrôle fin sur la durée de vie des tâches et évite les fuites ou les références pendantes dans les contextes asynchrones. - Protocoles d'annulation corrects : l'annulation est gérée via des protocoles qui garantissent le nettoyage, la libération des ressources et la cohérence de l'état même lorsqu'une tâche est interrompue en cours d'exécution. Cela évite le problème classique de l'asynchrone en Rust où des futures annulés laissent des effets de bord dans un état indéfini. - Effets contrôlés par capacités : les opérations produisant des effets observables sont conditionnées par des jetons de capacité. Seul le code détenant la capacité appropriée peut réaliser l'effet, rendant les effets de bord explicites et auditables à la compilation. - Tests de rejeu déterministes : le runtime prend en charge le rejeu déterministe, permettant aux tests d'enregistrer et de rejouer des traces d'exécution asynchrone. Cela rend les bogues de concurrence non déterministes reproductibles et débogables. La bibliothèque cible les développeurs construisant des systèmes où la correction asynchrone est critique — tels que les services d'infrastructure, les systèmes concurrents et les applications sensibles à la sûreté — où les runtimes asynchrones conventionnels peuvent permettre des violations silencieuses de correction. Elle est publiée sous licence MIT.