В отличие от реализации на Си, которая вначале была спроектирована как SOCKS-прокси, а уже потом подогнана под другие потребности, Arti изначально развивается в форме модульной встраиваемой библиотеки, которую смогут использовать различные приложения. Кроме того, при разработке нового проекта учитывается весь прошлый опыт разработки Tor, что позволит избежать известных архитектурных проблем, сделать проект более модульным и эффективным. Код распространяется под лицензиями Apache 2.0 и MIT.
В качестве причин переписывания Tor на Rust называется желание добиться более высокого уровня защищённости кода за счёт использования языка, обеспечивающего безопасную работу с памятью. По оценке разработчиков Tor, как минимум половина всех отслеживаемых проектом уязвимостей будет исключена в реализации на Rust, если в коде не используются блоки «unsafe». Rust также даст возможность добиться более высокой скорости разработки, чем при использовании Си, за счёт выразительности языка и строгих гарантий, позволяющих не тратить время на двойные проверки и написание лишнего кода.
Наиболее заметные изменения в выпуске 0.2.0 связаны с работой по повышению производительности и надёжности. Улучшена работа в сетях, поддерживающих только IPv6. Сокращено потребление памяти для хранения данных с серверов директорий. Добавлена опция dns_port, при помощи которой можно настроить отправку DNS-запросов через Tor. Предложен новый код для работы с конфигурацией. Добавлены API для определения правил изоляции потоков и включения спящего режима (приостановка работы для неактивных клиентов). Обеспечена возможность подключения альтернативных реализаций кода для работы с серверами директорий.
До публикации выпуска 1.0.0 разработчики намерены обеспечить в Arti полную поддержки работы в роли клиента Tor, обеспечивающего доступ к интернет (реализации поддержки onion-сервисов отложена на будущее). В том числе планируется добиться паритета с основной реализацией на языке Си в таких областях, как сетевая производительность, нагрузка на CPU и надёжность, а также обеспечить поддержку всех возможностей, связанных с безопасностью.
Источник: http://www.opennet.ru/opennews/art.shtml?num=56966