Quinn-это асинхно-совместимая внедрение асинхнологического протокола IETF Quic. Проект был основан Диркджаном Охтманом и Бенджамином Сондерсом в качестве побочного проекта в 2018 году, и с тех пор наблюдал более 30 релизов. Если вы используете Quinn в коммерческой обстановке, пожалуйста, рассмотрите возможность спонсирования проекта.
Примеры
$ cargo run --example server ./
$ cargo run --example client https://localhost:4433/Cargo.toml Это запускает сервер HTTP 0.9 на адресе Loopback, обслуживающего текущий рабочий каталог, а клиент получает ./Cargo.toml . По умолчанию сервер генерирует саморегистрированный сертификат и хранит его на диск, где клиент автоматически найдет и доверяет ему.
Ссылки
Конечная точка Quinn соответствует одному розетку UDP, независимо от того, сколько подключений используется. Обработка высоких агрегатных скоростей передачи данных в одной конечной точке может потребовать большего буфера UDP, чем по умолчанию в большинстве сред. Если вы соблюдаете неустойчивую задержку и/или пропускную способность по стабильной сетевой ссылке, рассмотрите возможность увеличения используемых размеров буфера. Например, вы можете настроить параметры SO_SNDBUF и SO_RCVBUF в сокете UDP, которые будут использоваться перед передачей его в Куинн. Обратите внимание, что некоторые платформы (например, Linux) требуют повышенных привилегий или модифицированной конфигурации системы для процесса для увеличения размеров буферов UDP.
По умолчанию клиенты Quinn подтверждают криптографическую идентичность серверов, к которым они подключаются. Это мешает активному нападающему в пути перехватить сообщения, но требует доверия к какому-либо авторитету. Для многих целей это может быть достигнуто, используя сертификаты от Let's Encrypt для серверов и полагаясь на конфигурацию по умолчанию для клиентов.
Для некоторых случаев, в том числе одноранговые, доверительные на первом месте, преднамеренно небезопасные приложения или любой случай, когда серверы не идентифицируются по доменному имени, это не практично. Произвольная логика проверки сертификата может быть реализована путем включения функции dangerous_configuration rustls и построив Quinn ClientConfig с переоборудованным проверкой сертификата вручную.
При использовании вашего собственного сертификата. Чтобы поддержать доверие на первом использовании, серверы, которые автоматически генерируют саморегистрированные сертификаты, должны написать свой сгенерированный сертификат для постоянного хранения и повторно использовать его в будущих пробегах.
Добро пожаловать все отзывы. Не стесняйтесь подавать ошибки, запросы на документацию и любые другие отзывы о трекере выпуска.
Тестовая набор Quinn-Proto использует моделируемый IO для воспроизводимости и во избежание длинных сна в некоторых чувствительных к времени тестам. Если установлена переменная среды SSLKEYLOGFILE , тесты будут издавать пакеты UDP для проверки, используя внешние анализаторы протокола, такие как Wireshark, и NSS-совместимые журналы ключей для клиентской стороны каждого соединения будут записаны на путь, указанный в переменной.
Минимальная версия ржавчины с минимальной поддержкой для опубликованных выпусков наших ящиков всегда будет не менее 6 месяцев во время выпуска.