Об этом проекте

asupersync — это асинхронная среда выполнения для Rust, построенная на принципе, что корректность должна быть структурной, а не обеспечиваться во время выполнения. Она предоставляет основу для написания асинхронного кода на Rust, где свойства безопасности встроены в систему типов и модель владения задачами. Ключевые столпы дизайна: - Задачи, принадлежащие регионам: задачи привязаны к явным регионам, что даёт разработчикам точный контроль над временем жизни задач и предотвращает утечки или висячие ссылки в асинхронных контекстах. - Протоколы корректной отмены: отмена обрабатывается через протоколы, гарантирующие очистку, освобождение ресурсов и согласованность состояния даже при прерывании задач в середине выполнения. Это позволяет избежать классической проблемы асинхронного Rust, когда отменённые future оставляют побочные эффекты в неопределённом состоянии. - Эффекты с проверкой возможностей: операции, производящие наблюдаемые эффекты, ограничены токенами возможностей. Только код, обладающий соответствующей возможностью, может выполнить эффект, что делает побочные эффекты явными и проверяемыми на этапе компиляции. - Детерминированное воспроизведение тестов: среда выполнения поддерживает детерминированное воспроизведение, позволяя тестам записывать и воспроизводить трассировки асинхронного выполнения. Это делает недетерминированные ошибки параллелизма воспроизводимыми и отлаживаемыми. Библиотека ориентирована на разработчиков, создающих системы, где асинхронная корректность критична — например, инфраструктурные сервисы, параллельные системы и приложения, чувствительные к безопасности, — где обычные асинхронные среды выполнения могут допускать скрытые нарушения корректности. Она публикуется под лицензией MIT.