Доступен первый выпуск новой утилиты сканирования сетевых портов RustScan, оптимизированной для существенного увеличения скорости cканирования. Высокая скорость достигается благодаря интенсивному распараллеливанию проверок. В проведённых текстах время сканирования 65 тысяч портов составило всего 8 секунд при выполнении 10 тысяч одновременных проверок. Код проекта написан на языке Rust и распространяется под лицензией GPLv3. Готовые пакеты собраны для Debian...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53422
nmap ограничивает скорость сканирования в том числе и чтоб не спалили, не говоря уже о том, чтобы пролезть в conntrack маршрутизаторов :-)Товарищами проверялось поведение nmap по-умолчанию, без использования опции -T, что говорит в том числе о их об общей квалификации или о том, что они хотят казаться лучше, чем есть. Впрочем, и с этой опцией nmap медленнее будет.
В целом - нишевое применение для локалок, по-моему.
там кода ~двести строк, половина из которых - парсер входных параметров. похоже на лаб.работу какого-то студента
P.S. 650 stars на гитхабе...куда катится этот мир?
эталонный фанат раста, как и star-ователи.
=
это они DDoS так написали - чортов T9!
Скажите, а зачем фанаты тех или иных языков подчеркивают свою элитарность, указывая название языка в названии проги, к-я на нем написана? Типа, RustScan или GoVPN. Никто же не пишет CLinux, CNginx и т.е.
Поэтому все и хотят закопать С считая его древним и ненужным.
Все? Ну успехов этим "всем", 100% производительного/эффективного софта написано на си+асм. На плючах написан в основом монструозный жручий софт, но иногда дополнительные абстракции и сложность себя оправдывают. При чём те же плючи ускоряются костылями и отказом от ряда возможностей.
> Все? Ну успехов этим "всем", 100% производительного/эффективного софта написано на си+асм.Точно 100%, а не 146%?
Странно. И когда только BLAS/LAPACK переписать успели 😕
Это не серьёзно, фортран не язык общего назначения. И вообще-то тут заслуга больше не фортрана, а компилятора (чё там, у интела всё ещё самый быстрый код? хотя так будет всегда).
> фортран не язык общего назначенияНе понял сейчас вот этого
А что не понятного? На нём не напишешь прикладное приложение, только куски выполняющие вычисления. Благодаря уже имеющемуся коду, в основном, а не по какой-то иной причине (тот же гцц имел очевидные проблемы с производительностью генерируемого кода). Нет, при очень большом желании, конечно, можно, я даже видел что-то подобное, но это было исключительно фофан.
> На нём не напишешь прикладное приложениеНе надо вводить людей в заблуждение.
> Это не серьёзно, фортран не язык общего назначения.В каком, говорите, браузере (исключительно на труЪ^W си+асм) вы писали ответ?
> Это не серьёзно, фортран не язык общего назначения.
> И вообще-то тут заслуга больше не фортрана, а компилятораАга. restrict в с99 ввели просто так, из любви к искусству (как и сборку ядра с -fno-strict-aliasing).
https://lwn.net/Articles/255364/
> Ulrich Drepper
> Memory part 5: What programmers can do...
> The default aliasing rules of the C and C++ languages do not help the compiler making these decisions (unless restrict is used, all pointer accesses are potential sources of aliasing). This is why Fortran is still a preferred language for numeric programming: it makes writing fast code easier.
>
> Поэтому все и хотят закопать С считая его древним и ненужным.Я не уполномачивал вас расписываться за меня. Я вот так не считаю. И стало быть вы получаетесь наглый лжец. Чисто технически. Офигенное у растишек сообщество, что сказать. Хайпомаки!
Часто люди хотят попробовать ЯП написав программу и не заморачиваются с названием по сл. пунктам:1. С большей вероятностью название LangApp|AppLang будет свободно.
2. App может быть тривиальным (Scan, VPN).
3. LangApp|AppLang легко найти в интернете.
Ну это чтобы предупредить всех разумных пользователей, чтобы те могли обойти поделку по широкой дуге. Удобно, когда хотя бы заботятся о пользователях. Молодцы какие.
А ну расскажи-ка, какие у разумного пользователя могут быть опасения по поводу раста?
Не по поводу раста, а по поводу смузихлёбов, называющих свои поделки Rust*.
Что за каша у тебя в голове? Как название влияет на качество кода?
Не название влияет на качество кода, а качество думалки автора влияет и на название, и на качество кода. Отсюда имеем корреляцию.
Есть определенная корреляция:
1) Вопят о языке программирования больше всего дилетанты, дико гордящиеся тем что они вот-вот только-только начали учить и типа-на-острие.
2) Какой код у этих чудаков и какое они представление имеют о написании софта все наверное уже догадались.
Забавно как легко выделить людей, не способных думать мозгами, только сердцем. Они если видят какие-то случайные внешние признаки, то тут же дают оценку. Даже не важно, положительную или отрицательную.Какая разница, на Rust оно написано или на C? Да хоть на Node.js, лишь бы работало как заявлено.
> Забавно как легко выделить людей, не способных думать мозгами, только сердцем. Они
> если видят какие-то случайные внешние признаки, то тут же дают оценку.
> Даже не важно, положительную или отрицательную.
> Какая разница, на Rust оно написано или на C? Да хоть на
> Node.js, лишь бы работало как заявлено.Некоторые люди действительно по одному мимолётному взгляду способны давать верную оценку. Процент ошибок при этом исчезающе мал, полезный навык.
Какая разница? Да большая, все эти поделки пишутся в процессе изучения (не жалко выкинуть). Та же нода автоматически ограничивает применимость (независимо от качества продукта) -- сравнение довольно странное и нелогичное.
> Некоторые люди действительно по одному мимолётному взгляду способны давать верную оценку. Процент ошибок при этом исчезающе мал, полезный навык.На самом деле, не так уж и мал. Но даже если оценка верна в 80% случаев, польза от такой способности огромная.
> Некоторые люди действительно по одному мимолётному взгляду способны давать верную оценку.
> Процент ошибок при этом исчезающе мал, полезный навык.Забавно, что из-за ретроспективного искажения а ля "я-так-и-знал!", к этим "некоторым" причисляет себя намного большее количество. Хотя и неплохо фильтруются по "исчезающе малому проценту ошибок", кхе.
К этим некоторым относятся практически все специалисты, но не очень долго. Сначала для этого не хватает опыта, потом мешает переоценка своих способностей.
Вообще лучший специалист — тот, кто уже понял, что ничего не знает, но ещё не понял, что другие знают ещё меньше.
> Некоторые люди действительно по одному мимолётному взгляду способны давать верную оценку.
> Процент ошибок при этом исчезающе мал, полезный навык.Есть такое. Обычно эти некоторые люди очень в теме и обычно объясняют, почему они так считают.
> Какая разница? Да большая, все эти поделки пишутся в процессе изучения (не
> жалко выкинуть).Ядро Linux писалось именно как поделка. Там даже ядро монолитное, в то время как почти везде такой подход считался устаревшим, и пилили либо гибридки, либо честные микроядра. Да оно и до сих пор так считается.
Или там Sanic, web-фреймворк для питона был вообще экспериментом на потеху публике, с тем самым мемом в Readme (сейчас убрали, но история коммитов помнит). 14 килозвёзд на гитхабе. Да и сам гитхаб тоже был сторонней разработкой.
Уверен, порядочно софта начиналось как хобби.
> Та же нода автоматически ограничивает применимость (независимо от качества продукта) -- сравнение довольно странное и нелогичное.
И? Если бы софт назывался NodeScan и написан был на Node.js, но при этом делал свою задачу (пусть и узкую) лучше, чем другие инструменты -- это было бы поводом обходить его стороной?
А если на Go? Или Nim?
> Какая разница, на Rust оно написано или на C? Да хоть на Node.js, лишь бы работало как заявлено.Потом появляются в результате уродские значки жрущие 2% оперативы на 1 иконку и пару менюх. Или даже после запуска пары чатов на телефоне с 6 гигами рамы почему-то память кончается.
+1. Когда в название вставляется язык, это во-первых слишком ребячески, а во-вторых, смахивает на рекламу. Которой со стороны растаманов уже стало зашкаливать. Их фуфлоРаст никто не использует - и поехали своими помоями новостные ленты заливать!
А потом будут ещё и тиёбой тыкать: смотрите, про нас пишут, мы популярны! :))) Так это не популярность, а надоедливость уровня казИно.
фантазии не хватает
Почему никто? Есть же Cfront. :)
ТроллеРастам здесь не рады...
> Никто же не пишет CLinux, CNginx и т.еclang, cmus, ncmpcpp
aewm++, ctorrent
cmake, csh
clang - написан на C++ а не на C, и назван так, потому-что это frontend для языков С/C++.
cmake - написан на C/C++, но назван не из-за того, что он на них написан, а потому, что предназначен для автоматизации кросс-сборки программ, изначально написанных на C/C++, на разных платформах.
cmus - не уверен, что в честь С. Его название так-же можно интерпретировать как Console, или даже Command, исходя из "Everything in cmus is implemented as commands which can be typed at command
line or bound to a key".
ncmpcpp является fork-ом ncmpc, который, как это не странно, был написан на C++, а не на C. Так-что тут "pp" - это отличие от родителя.
csh - опять-же не потому, что на C, а потому, что в отличие от канонического sh и разных там bash имеет синтаксис более C-подобный, чем выше означенные оболочки.
ctorrent - тоже написан на C++. Хотя похоже, давно, там как-то участвовал и C.
Там выше упоминали про CFront - в википедии пишут, что он был сам написан на C++, примерно как сейчас Vala, и тоже как и Vala транслировал код в C-шное представление.
cgraph
CPython
А какже СPython?
А его тоже следует обходить стороной.
> let stream = io::timeout(timeout, async move { TcpStream::connect(addr).await }).await?;Ну так не интересно, параллельный скан системным вызовом connect, даже не TCP SYN.
Намекаешь, что можно было обойтись башем?
$ cloc RustScan
13 text files.
13 unique files.
6 files ignored.github.com/AlDanial/cloc v 1.81 T=0.06 s (127.8 files/s, 16012.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
YAML 4 54 135 282
Markdown 2 89 0 207
Rust 1 22 18 171
TOML 1 3 1 20
-------------------------------------------------------------------------------
SUM: 8 168 154 680
-------------------------------------------------------------------------------
171 строчка кода. Тут теперь про каждый хелловорлд с гитхаба новости постить будут?
открыл страничку гитхаба, действительно, 80% проделанной работы -- оформление README.md. только пыль в глаза пускают. самим-то не стрёмно?
Не знаю чего это я тут в ярые защитники записался, но не согласен с вашим подходом, хорошая документация это важно, или вы не читая README сразу всегда код открываете и прям сразу понимаете весь функционал и варианты использования?
Если программа не для себя, а для людей, то потратить больше времени на документацию, чем на код, это хороший тон.
Ну полезность программ не количеством строчек кода меряется, а порой избыточное количество кода вредно, т.к. увеличение сложности ведёт к ошибкам и дырам. Базовые принципы чтобы программа была простая, выполняла одну задачу и делала это хорошо не просто так придумали. Насколько полезна данная конкретная программа судить не возьмусь, не эксперт, но заявленное ускорение в несколько раз популярной программы звучит неплохо.
Даже если автор этой новости так привлекает внимание к своей разработке, то почему нет, где ещё это ему делать?
> избыточное количество кода вредно, т.к. увеличение сложности ведёт к ошибкам и дырам.особенно на расте. На нём только хеловорды пишут.
> Насколько полезна данная конкретная программа судить не возьмусь, не экспертТогда доверься её автору: найди в README табличку сравнения и погляди на содержание графы «Actually useful».
> заявленное ускорение в несколько раз популярной программы звучит неплохо
И ты поверил?
$ nmap -PS -p1-65535 --min-parallelism=10000 ya.ru
Warning: Your --min-parallelism option is pretty high! This can hurt reliability.
Starting Nmap 7.70 ( https://nmap.org ) at 2020-07-24 11:54 MSK
Nmap scan report for ya.ru (87.250.250.242)
Host is up (0.035s latency).
Other addresses for ya.ru (not scanned): 2a02:6b8::2:242
Not shown: 65533 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open httpsNmap done: 1 IP address (1 host up) scanned in 15.03 seconds
Супротив заявленных 8 с это не в разы, а то, что он балаболит про какие-то 20 мин, так это он, по ходу, nmap не осилил.
Поскольку сабж у меня не собирается системным rustc, а ставить блобятину я не приучен, предоставляю провести сравнение обоих вариантов в равных условиях тебе.P.S. Кто его знает, на чём он эти 8 с получил…
$ nmap -PS -p1-65000 --min-parallelism=10000 127.0.0.1
Warning: Your --min-parallelism option is pretty high! This can hurt reliability.
Starting Nmap 7.70 ( https://nmap.org ) at 2020-07-24 12:00 MSK
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 64990 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
3493/tcp open nut
6600/tcp open mshvlm
8010/tcp open xmpp
23456/tcp open aequusNmap done: 1 IP address (1 host up) scanned in 3.09 seconds
Мелкий мошенник. Еще и patreon завел:) Не важно на самом деле на чем пишет.
Про параллелизм в nmap очевидно знает. Я ему завел issue, на которую он тут же ответил, что мол на самом деле все равно не так быстро как моё и якобы потом в Readme исправит вранье про 17 минут.
Issue можно было бы закрыть, но он его удалил немедленно, засранец. :))
Во, типичный растоман - решил еще и денег срубить на какой-то дилетантской хайповой ерунде.
// Tells the user we are now switching to Nmap
println!(
"{}",
"Starting nmap.".blue(),
);
Полноценный сканер портов, а чё, я тоже так могу.
то есть вопрос: о чём эта новость?ответ:
"""
Rust умеет многопоточность и асинхронные приложения тоже можно на нём писать.
вот вам лабораторная работа на эту тему
"""ну спасибо. нашли чем захотели удивить :-) ..
а вообще-то уже 2020 год идёт. надо было бы чем-то другим удивлять..
сделали бы например лучше "лабораторную работу" о том как Rust замечательно поддерживает liburing (я этого не знаю, уровень интеграции/поддержки какой) если уж заговорили про Асинхронность -- тогда бы ещё было бы интересно.
а кого нитями (Thread) и Корутинами (Coroutine) можно удивить в 2020 году?
Это тот случай, когда ридми длиннее исходников самой программы....
Получается Rust позволяет излагать мысли компактнее чем английский!
А он без nmap работает?
Фатальный недостаток, да? Написали не они и не на ржавчине.
> Готовые пакеты собраны для Debian. Следом опубликована модернизированная версия RustScanВдвоем работают.
Один пушит, второй коммитит.
Причем второй не успевает за первым.
третий руководит
Все, что нужно знать о Rusthttps://www.rust-lang.org/tools/install
> To download Rustup and install Rust, run the following in your terminal
> curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shпздц.jpg
Первая и единственная репа на расте, и та уровня лаба1. Зато уже раскидал ссылок уже по твиттеру и реддиту (на реддите кстати не зашло). На том же реддите других постов и комментов кроме ссылок на свой блог нет.В общем он просто себя раскручивает, на хайпе раста.
Если бы человек просто раскручивал, черт бы с ним. Наглое вранье, которое легко вскрывается.
Как бы вы не подевались он своей цели уже достиг. Вы говорите о нем.
Гитлера тоже много кто знает. И чего?!
че только люди не делают чтобы прочитать мануал к nmap
Погоди, они потом еще узнают что zmap бывает - и будут долго часать репу на тему того что от их "массового параллелизма" почему-то один сплошной оверхед лезет, гы.
Мда, а то что при таком сканировании нормальная система сразу запалит сканирование?О чем и речь, квалификация. Но зато rust. А я то понадеялся что может уже что дельное написали.
Если уж zmap за какие-то часы перебирает с гигабита весь ipv4. Эти растомакаки про такой тул не слышали?И там фича вовсе не в массовом распараллеливании - на такой скорости важнее всего максимальная эффективность операций, и zmap очень сильно все упростил и распрямил для того чтобы это было супербыстро - facilities ОС на большинство вещей вообще не напрягается.