Здравствуй, Rustacean!
Это начало серии постов "Портируем на Rust"
Я буду публиковать исходники программ, портированных на Rust и рассказывать детали разработки.
Первой моей жертвой стала утилита Sherlock, написанная на Python. Её цель - нахождение аккаунтов с юзернеймом, который вы ей зададите. Главным мотивом стала скорость - как по мне она очень медленно ищет аккаунты.
Поэтому, я как любитель скорости решил "переписать" её на Rust.
Версия 1.3.0
Это начало серии постов "Портируем на Rust"
Я буду публиковать исходники программ, портированных на Rust и рассказывать детали разработки.
Первой моей жертвой стала утилита Sherlock, написанная на Python. Её цель - нахождение аккаунтов с юзернеймом, который вы ей зададите. Главным мотивом стала скорость - как по мне она очень медленно ищет аккаунты.
Поэтому, я как любитель скорости решил "переписать" её на Rust.
Версия 1.3.0
Так как идиомы Rust и Python отличаются, переписать что-то точь-в-точь не всегда оптимальное решение.
Поэтому, даже сообщения о найденных аккаунтах или ошибках отличаются
Поэтому, даже сообщения о найденных аккаунтах или ошибках отличаются
Естественно, для данного проекта я использовал Tokio и Reqwest. Также был использован вспомогательный модуль Futures, для того чтобы исполнить все "заспавненные таски" в один момент и не было "каши" при обработке нескольких юзернеймов.
Я немного изменил `sites.json`, который был в Sherlock, я вынес оттуда самое важные поля(всего 3): name, url, error.
Список сайтов для проверки находится в res/sites.json, который подгружается не во время запуска Slidchyi, а во время его компиляции. То есть если вы хотите добавить пару сайтов в список для проверки на юзернейм, то нужно будет перекомпилировать исполняемый файл. Просто люблю независимые экзешники, где не приходится таскать миллион конфигов
Я немного изменил `sites.json`, который был в Sherlock, я вынес оттуда самое важные поля(всего 3): name, url, error.
Список сайтов для проверки находится в res/sites.json, который подгружается не во время запуска Slidchyi, а во время его компиляции. То есть если вы хотите добавить пару сайтов в список для проверки на юзернейм, то нужно будет перекомпилировать исполняемый файл. Просто люблю независимые экзешники, где не приходится таскать миллион конфигов
Может помочь даже обыватель, который разбирается в формате JSON, я упростил res/sites.json, потому если вы хотите помочь проекту, можете оставлять расширенные версии этого файлика прямо в комментариях
UPD: Добавлено: поддержка обработки нескольких юзернеймов сразу, записи в файл куда записываются результаты поиска(или папка, если юзернеймов несколько), можно поставить ограничение времени на запрос в секундах(стандартно 10), а также теперь можно поставить количество попыток, чтобы достучаться до сервера(стандартно 5). Добавлено 98 сервисов с определением ошибки не по HTTP Status Code. Потихоньку исправляю устаревшие детекты из Sherlock...
UPD 2: Добавлена поддержка списка прокси. Если у вас не работает прошу обратиться ко мне в лс
Последнее редактирование: