Spec-Zone.ru › Trio

Trio: дружественный Python-библиотека для асинхронной конкурентности и ввода-вывода

Цель проекта Trio — создание качественной, лицензируемой библиотеки ввода-вывода для Python, основанной на async/await. Как и все асинхронные библиотеки, её основная цель — помочь вам писать программы, выполняющие несколько задач одновременно с параллелизованным вводом-выводом. Например, веб-паук, который хочет параллельно загрузить много страниц, веб-сервер, который должен одновременно обрабатывать множество загрузок и подключений websocket, или процесс-менеджер, контролирующий несколько дочерних процессов. По сравнению с другими библиотеками, Trio стремится выделиться благодаря пристальному вниманию к удобству использования и корректности. Конкурентность — сложная тема; мы стараемся сделать её легкой для достижения правильного результата.

Trio разработан с использованием последних возможностей Python, вдохновленный многими источниками, в частности, библиотекой Curio от Dave Beazley. Результатом стала значительно более простая конструкция по сравнению со старыми конкурентами, такими как asyncio и Twisted, но с той же эффективностью. Trio — идеальная Python-библиотека ввода-вывода, которую я всегда хотел; я считаю, что она делает создание программ, ориентированных на ввод-вывод, более лёгким, менее подверженным ошибкам и просто более приятным. Возможно, вы почувствуете то же самое.

Этот проект молодой и все ещё в некоторой степени экспериментальный: общая архитектура надёжна, а существующие функции полностью протестированы и документированы, но могут встречаться отсутствующие функции или недоработки. Мы рекомендуем вам его использовать, но вы должны прочитать и подписаться на выпуск #1, чтобы быть в курсе любых изменений, которые могут повлиять на совместимость.

Основные характеристики:

  • Поддерживаемые среды: Тестируется на

    • Python: 3.9+ (CPython и PyPy)

    • Windows, macOS, Linux (glibc и musl), FreeBSD

    Другие среды также могут работать; попробуйте их.

  • Установка: python3 -m pip install -U trio (или на Windows, возможно, py -3 -m pip install -U trio). Компилятор не требуется.

  • Руководство пользователя и справочник: https://trio.readthedocs.io

  • Отслеживание ошибок и исходный код: https://github.com/python-trio/trio

  • Чат в реальном времени: https://gitter.im/python-trio/general

  • Форум обсуждения: https://trio.discourse.group

  • Лицензия: MIT или Apache 2, выбирайте сами

  • Руководство по участию в проекте: https://trio.readthedocs.io/en/latest/contributing.html

  • Кодекс поведения: От участников проекта ожидается соблюдение нашего кодекса поведения во всех пространствах проекта.

Популярное, но полное руководство по Trio:

  • Учебник
    • Перед началом
    • Если вы запутались...
    • Асинхронные функции
    • Более дружественный GIL
    • Работа с сетями с помощью Trio
    • Что делать, когда всё идет не по плану: таймауты, отмена и исключения в конкуретных задачах
  • Полезные библиотеки Trio
    • Начало работы
    • Веб и HTML
    • Базы данных
    • IOT
    • Создание приложений командной строки
    • Создание GUI приложений
    • Многоядерность/Многопроцессорность
    • Обработка потоков
    • RPC
    • Тестирование
    • Инструменты и утилиты
    • Взаимодействие Trio/Asyncio
  • Основные возможности Trio
    • Запуск Trio
    • Общие принципы
    • Время и часы
    • Отмена и таймауты
    • Задачи позволяют выполнять несколько операций одновременно
    • Хранилище данных локального уровня задач
    • Синхронизация и обмен данными между задачами
    • Примечания по асинхронным генераторам
    • Потоки (если нужно)
    • Интерактивная отладка
    • Исключения и предупреждения
  • I/O в Trio
    • Абстрактный API потоков
    • Работа с низким уровнем сетей с помощью trio.socket
    • Асинхронное файловое I/O
    • Запуск дочерних процессов
    • Сигналы
  • Тестирование с помощью trio.testing
    • Интеграция тестового каркаса
    • Время и таймауты
    • Порядок задач
    • Потоки
    • Виртуальные сети для тестирования
    • Проверка контрольных точек
    • Вспомогательные функции ExceptionGroup
  • Просмотр и расширение Trio с помощью trio.lowlevel
    • Отладка и инструментарий
    • Запуск процессов низкого уровня
    • Примитивы ввода-вывода низкого уровня
    • Глобальное состояние: системные задачи и локальные переменные выполнения
    • Токены Trio
    • Запуск потоков
    • Более безопасная обработка KeyboardInterrupt
    • Сон и пробуждение
    • API задач
    • Использование "режима гостя" для запуска Trio поверх других циклов событий
    • Передача активных объектов корутины между запустителями корутин
  • Архитектура и внутренности
    • Основные принципы проектирования
    • Принципы API уровня пользователя
    • Конкретные рекомендации по стилю
    • Краткое знакомство с внутренним устройством Trio
END_OF_DOCUMENT_MARKER
  • История релизов
    • Trio 0.29.0 (2025-02-14)
    • Trio 0.28.0 (2024-12-25)
    • Trio 0.27.0 (2024-10-17)
    • Trio 0.26.2 (2024-08-08)
    • Trio 0.26.1 (2024-08-05)
    • Trio 0.26.0 (2024-07-05)
    • Trio 0.25.1 (2024-05-16)
    • Trio 0.25.0 (2024-03-17)
    • Trio 0.24.0 (2024-01-10)
    • Trio 0.23.2 (2023-12-14)
    • Trio 0.23.1 (2023-11-04)
    • Trio 0.23.0 (2023-11-03)
    • Trio 0.22.2 (2023-07-13)
    • Trio 0.22.1 (2023-07-02)
    • Trio 0.22.0 (2022-09-28)
    • Trio 0.21.0 (2022-06-07)
    • Trio 0.20.0 (2022-02-21)
    • Trio 0.19.0 (2021-06-15)
    • Trio 0.18.0 (2021-01-11)
    • Trio 0.17.0 (2020-09-15)
    • Trio 0.16.0 (2020-06-10)
    • Trio 0.15.1 (2020-05-22)
    • Trio 0.15.0 (2020-05-19)
    • Trio 0.14.0 (2020-04-27)
    • Trio 0.13.0 (2019-11-02)
    • Trio 0.12.1 (2019-08-01)
    • Trio 0.12.0 (2019-07-31)
    • Trio 0.11.0 (2019-02-09)
    • Trio 0.10.0 (2019-01-07)
    • Trio 0.9.0 (2018-10-12)
    • Trio 0.8.0 (2018-10-01)
    • Trio 0.7.0 (2018-09-03)
    • Trio 0.6.0 (2018-08-13)
    • Trio 0.5.0 (2018-07-20)
    • Trio 0.4.0 (2018-04-10)
    • Trio 0.3.0 (2017-12-28)
    • Trio 0.2.0 (2017-12-06)
    • Trio 0.1.0 (2017-03-10)
  • Содействие проекту Trio и связанным проектам
    • Начало работы
    • Предоставление поддержки
    • Подготовка запросов на вытягивание
    • Присоединение к команде
    • Управление проблемами
    • Управление
  • Подготовка к выпуску
  • Кодекс поведения
    • Когда что-то происходит
    • Наше обещание
    • Наши стандарты
    • Область
    • Процесс обеспечения соблюдения со стороны ответственных
    • Примеры обеспечения соблюдения
    • Атрибуция

Индексы и таблицы

  • Индекс

  • Индекс модулей

  • Страница поиска

  • Глоссарий

© 2017 Nathaniel J. Smith
Licensed under the MIT License.
https://trio.readthedocs.io/en/v0.29.0/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API