Об этом проекте
asupersync — это асинхронная среда выполнения для Rust, построенная на принципе, что корректность должна быть структурной, а не обеспечиваться во время выполнения. Она предоставляет основу для написания асинхронного кода на Rust, где свойства безопасности встроены в систему типов и модель владения задачами.
Ключевые столпы дизайна:
- Задачи, принадлежащие регионам: задачи привязаны к явным регионам, что даёт разработчикам точный контроль над временем жизни задач и предотвращает утечки или висячие ссылки в асинхронных контекстах.
- Протоколы корректной отмены: отмена обрабатывается через протоколы, гарантирующие очистку, освобождение ресурсов и согласованность состояния даже при прерывании задач в середине выполнения. Это позволяет избежать классической проблемы асинхронного Rust, когда отменённые future оставляют побочные эффекты в неопределённом состоянии.
- Эффекты с проверкой возможностей: операции, производящие наблюдаемые эффекты, ограничены токенами возможностей. Только код, обладающий соответствующей возможностью, может выполнить эффект, что делает побочные эффекты явными и проверяемыми на этапе компиляции.
- Детерминированное воспроизведение тестов: среда выполнения поддерживает детерминированное воспроизведение, позволяя тестам записывать и воспроизводить трассировки асинхронного выполнения. Это делает недетерминированные ошибки параллелизма воспроизводимыми и отлаживаемыми.
Библиотека ориентирована на разработчиков, создающих системы, где асинхронная корректность критична — например, инфраструктурные сервисы, параллельные системы и приложения, чувствительные к безопасности, — где обычные асинхронные среды выполнения могут допускать скрытые нарушения корректности. Она публикуется под лицензией MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.