Разработчики языка Rust предупредили о выявлении в репозитории crates.io пакета rustdecimal, содержащего вредоносный код. Пакет был основан на легитимном пакете rust_decimal и пользовался для распространения сходством в имени (тайпсквоттинг) с расчётом на то, что пользователь не обратит внимание на отсутствие символа подчёркивания, осуществляя поиск или выбирая модуль из списка...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57169
абсурд! в безопасном репозитории безопасного языка не может такого быть!
Ох уж эти профессиональные опеннетные комментаторы...
Лорчую, очевидный фейк.
Системы непрерывной интеграции бэкдоров и прочих rustdec'ов.
>Системы непрерывной интеграции бэкдоров и прочих rustdec'ов.ну напиши в резюме, что ты суровый сисадмин в залитом пивом свитере с оленями - категорический противник CI и докера, а мы посмотрим сколько тебе денег отвалят )
Я уже неплохо занят по профилю инфраструктуры (да, никаких доскеров с системами непрерывного бэкдоринга), и у меня нет свитера с девляпсами.
Кем работаешь если не секрет?
Очевидно, профессиональным комментатором опеннета
"платформа Windows не поддерживалась" - всё чаще вижу что разработчики отказываются от поддержки винды! Это радует :)
Если даже вирусы от неё отказываются, там наверное уже почти не осталось пользователей
..или известных дыр, что бы вирусы успешно запускать? =)
Все дыры наверное там теперь проприетарные, только для "своих" (это догадки, не знаю, не слежу за этим).
никогда ещё на винде не было столь безопасно, как при развитОм линуксе
) малайца
Сейчас типичный "вирус" - это не инфектор исполняемых файлов из журнала 29a, а тупая программа-вымогатель. Шифрует данные и просит выкуп. Чем толще жертва, тем выгоднее. То есть пользователи с котиками не интересны, проще подкупить админа. Так что "для своих", внезапно, может заиграть новыми смыслами.
А откатить админ не может?
Ну если он сам зарегистрировался в партнёрке вымогателей... ничего личного, джаст э бизнесс. А виноваты русские хакеры.Если серьёзно, то есть же описания известных троянов, вплоть до исходников. Шифруют сетевые шары в первую очередь. Файло выкачивают, что бы дополнительно угрожать публикацией секретов. Здесь, на ресурсе, где в основной массе тусят админы, довольно странно видеть неосведомлённость и надежду на "кто работает по Ру, к тому приходят по утру" и порицание "шкафчиков" андеграундом. В Линуксах так вообще могут зашифровать штатными средствами весь раздел.
> Сейчас типичный "вирус" - это не инфектор исполняемых файлов из журнала 29a, а тупая программа-вымогатель.Это "сейчас" (в смысле - "не инфектор, а троян/угонщик_паролей/бот/загрузчик_чего-то") уже лет под 20 как ;)
А потом пошли спамботнеты (почитайте Severa, он как раз публикует мемуары про ИИ и нейросети), руткиты, буткиты, собственные сетевые стеки, инфектор драйверов, который после нескольких лет поисков нашёл сотрудник Данилова, а потом по всему миру ловили сэры мэйоры, поскольку технологии оказались слабы.
Кто бы знал, что начало вендекапца будет именно таким
чё ты несешь лол
винда как была топом так и осталась
Извините, я тут мимо проходил. В новости речь про безопасный раст, да? Ну в котором всё безопасно.
не боись не забеременеешь
Бывает ничто не идеально. Репы сами по себе одна большая дырень, но другого нет. Так что на заподном фронте без перемен.
Так подождите... Но ведь говорили, что репы это безопасно: не надо лазить по разным сайтам, всё проверяется, всё централизовано... А в реальности оно вот как получается! Это что же, получается что нас обманывали?
репы поддерживаются ограниченным количеством мейнтенеров, каждому из которых можно лично дать п-ды если что. а crates - это тот же npm - т.е. свалка. раньше такое называли "файлопомойка"
Можно дать… можно не дать.
Надо понимать, что дать п можно безопасно?
Справедливости ради, обнаружили же бяку. Тут постоянно втирают про открытость кода как непревзойденную киллерфичу.Видимо,это оно и есть.
Рано или поздно и антивирусы бяку находят. А в ччём киллерфича тогда?
В том что тыщеглаз все как бы видит.D
Какой- то опендвач
Так я ни разу не кодер,сорян.
Антивирус (в классическом понимании этого слова) может найти только то, что есть у него в базе. То есть специально обученный человек нашёл, снял сигнатуру, и вот потом уже "антивирус находит".
Ну типа. Но мы уже давно за рамками классики, так что, конечно, появляются другие угрозы, в виде сущности самого антивируса, но это другая история. Да даже в классическом случае, специально обученые специально ковыряют софт (да и исходники могут), чтоб вот этого вот не случалось.И именно потому, что здесь всё специальное, я больше доверяю антивирусам чем сообществу.
Вы это кто? Есть какие-то работы, что бы посмотреть? Я делал чисто по классике: строил белый список и проверял, попадает ли в него экземпляр. Ловил то, что пропускали на тот момент антивирусы. Но это требовало запуск образца.
Ну теперь AI в песочницах файлы проверяет. Прогресс !
Осталось почитать ТЗ на троянца:
1. Исходники на Rust
2. Детект песочниц
3. ...
:)
Ну вот видишь, зловреда достаточно оперативно выявили. Не предотвратили, но все же. Еще есть над чем поработать, да.
>> ведь говорили, что репы это безопасноТак сообщили же о проблеме, и устранили. ;)
А если б понакачали исходиков откуда нибудь, пока сами не обнаружите... счастье в неведении.
Просто код из репозиториев достаточно считать сырым, и без тестирования не допускать в "боевое" ПО.
Где и кем говорилось, балабол мамкин?
Как тоесть нет?
о да! мой любимый с++ 98 со стандартной библиотекой, ехидно на это смотрит)
Хе. Карго, с почином! Теперь БЕЗОПАСТНОСТНЫЙ язык имеет своих тайпсквоттеров в репе.
Сейчас, еще немного, появятся и китайцы, перекупающие пакеты у таких, как я; и взломы аккаунтов проверенных юзверей... а потом еще немного и язык подрастет настолько, что сможет пить пиво "Пивское", участвовать в оргиях у Стивена Кинга и плыть на волнах постыронии под парусом постмодерна
> в репеучи матчасть, друг. это не реп, а файлопомойка, куда сливают все кому ни лень и никто не контроллирует ничего и ни за что не отвечает
И чем это отличается от ситуации, когда из офф репы ты тянешь обновленное ядро линукса с новым бекдором от CIA?
А... разница в том, что в это случае будет не 500 загрузок))
Подождите- ка, но это же ОпенСурс, n-число глаз, которые всё просмотрели и всё нашли.
Допустим, n-число глаз не могут в богомерзкий Xi, то с внедрением безопасного Rust в ядро… Wait. Oh, shi~!
Ваши n-число глаз уже не шмогли еще задолго до раста :(PS Сомневаюсь что ядро будет тянуть что-то из реп, там будет более чем достаточно просто положить сорцы рядом.
> достаточно просто положить сорцы рядомТех самых, после n-глаз. Точно тех же, что в репах. Ага, понял.
Если это раст, то будет, практически 100% будет.
С растом тоже нишмагли.Так что ж получается…
>участвовать в оргияхТам за то, чтобы то ли в core team, то ли в другую team войти, надо с этой team оргией заняться.
А ты в это время свечку держишь?
Скачать безопасный rustdecimal бесплатно без смс.
Но вы же говорили что оно Никомуненужно ლ(ಠ益ಠ)ლ !!! Откуда бэкдоры в пакетах ??? Откуда столько комментов на Опеннете в каждом топике про Раст ???
Ты так говоришь что много комментариев на опеннете это что-то хорошее.
Ну а чего они ожидали:), покуда существуют эти самые менеджеры, в данном случае cargo, - пободное будет всегда (и не важно какой там у них Rust безопасный или нет)!
Особенно учитывая тот факт, что на зависимости вообще мало кто нынче смотрит:) Ставите один пакет, а вам вместе с ним приезжает куча непонятно чего, которое подягивает еще кучу непонятно чего, которое весит непонятно сколько! Ну да, так проще, они же говорят не пишите велосипеды:), и вообще не думайте головой, - типа за вас уже всё решили и подумали:)
> говорят не пишите велосипедыТак говорят только в рунете на всяких хабохибарах, а на западе в основном пишут все с нуля на стандартной библиотеке и используют сторонние наработки только на этапах прототипирования.
Никто не пишет всё с нуля. Уж тем более на «ЗАПАДЕ» (прекращай смотреть телек) нет такой организации запад. Если ты претендуешь на сеньора, но пишешь велосипеды ты идешь лесом.Есть FAANG, но они вообще вещь в себе.
Никто не говорил, что это организация - "Север" тоже не организация, однако фраза "на севере" не теряет осмысленности.
Неудачная попытка в экстрасенсорику.
>а на западе в основном пишут все с нуляРазработка facebook react-create-app для минимального приложения установит более 2000 пакетов.
Почему в maven такого нет?
Хотя конечно тайпсквоттинг для вот этого вот выполнить сложно очень
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
> Почему в maven такого нет?Потому что у фанатов слишком избирательное восприятие:
https://blog.sonatype.com/malware-removed-from-maven-central
И? Как ты себе представляешь подключение этих плагинов вместо настоящих?
"NPM и left-pad: мы разучились программировать?"
"Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, имеет 11 звёзд на Github (сейчас 323 — прим.пер). Весь пакет состоит из 11 простых строчек"
"Есть пакет под названием isArray, который скачивают 880 000 раз в день, 18 млн скачиваний в феврале 2016 года. У него 72 зависимых NPM-пакета. И вот его целая 1 строчка кода:"
"Есть пакет под названием is-positive-integer (GitHub), который состоит из 4 строчек и которому на вчерашний день требовалось 3 других пакета для работы."
"Свежая установка Babel включает 41 000 файлов"
а чем-то автор Deno был прав. Репозитории порождают маразм зависимостей.
> Репозиторииречь не о репозитории, а о файлопомойке. файлопомойки существуют очень давно и никакой проверки от них никто не ожидает. только M$ пришло в голову как использовать это явление в своей игре, а болванчики и рады повторять за "гуру" даже не зная значения произносимых слов
такие файлопомойки полезны как тренировочные данные для всяких там ИИ "как надо писать код"пс:66604
> left-pad
> isArrayцитаты из времен, когда для ECMAScript еле-еле выпустили новую спеку спустя ~6 лет простоя
Это 2016 год. Array.isArray поддерживается в IE 9 с 2011, а в остальных еще раньше, но этот однострочник до сих пор пихают в зависимости. Странно что в него троян не засунули за всё это время.
is-positive-integer это вообще 3 оператора, ради этого подключать библиотеку толсто очень. С тех пор в стандартную библиотеку добавили isInteger и padStart чтобы программисты не мучили npm
> Array.isArray поддерживается в IE 9 с 2011Ага, то есть в 2011 году все резко подскочили и перешли в IE 9, да? Глянь browser stats 2011 для начала. Да я в эти времена все еще с IE 6 бодался.
> в стандартную библиотеку добавили isInteger и padStart чтобы программисты не мучили npm
Не "чтобы не мучили npm", а потому что есть в этих функциях объективная нужда. И речь здесь не про объем кода (никто не "разучивался программировать"), а про то, что ECMAScript не предоставлял достаточно стабильный рантайм. Сегодня это "[object Array]", завтра еще черт знает что. Библиотека isArray хотя бы была центральным местом, в котором мог бы быть накоплен опыт по ее работоспособности в самых разных браузерах, некоторые из которых уже не существуют.
Какой свободный?
1) вместо isArray можно было использовать instanceof Array который есть даже в IE 4
2) Вместо isInteger использовать оператор % 1 который даже в первом netscape navigator должен работать
Эти функции заметаются одним оператором доступным в очень старых браузерах.
3) leftpad это 2 строчки кода>Библиотека isArray хотя бы была центральным местом
в котором в любой момент мог оказаться троян взломавший компьютеры разработчиков и клиентов.
Аккаунт разработчика могут взломать в любой момент, он его мог продать.
> вместо isArray можно было использовать instanceof Array который есть даже в IE 4Посмотри в MDN, чем чреват такой метод.
> Вместо isInteger использовать оператор % 1 который даже в первом netscape navigator должен работать
Ага, и споткнись на первом же неординарном случае типа ({valueOf: () => 42}) % 1. Ты не сможешь с первого раза написать такую функцию -- обязательно вылезет edge case, который ты и представить себе не мог. А если функция сработает для тебя, не факт, что сработает в другом браузере образца 2011 года.
> leftpad это 2 строчки кода
Которые, полагаю, предлагается тащить повсюду, реализуя его снова и снова? Сообщество пришло к минимальным пакетам как ответ на стагнацию ECMAScript, а не потому что "не шмагли реализовать". В наши дни в них нужды особо нет, спасибо минимальным пакетам, которые наконец заставили tc39 как-то начать шевелиться.
> в котором в любой момент мог оказаться троян
А если бы бабушка была дедушкой...
function isInteger(num) {
return typeof num === "number" && isFinite(num) && num % 1 === 0;
}
описывает все возможные варианты. 7 месяцев не писала, js
Если будут сомнения на jest тесты написала бы.
>реализуя его снова и снова?Да, скопипастить 2 строчки в Utils.js и не зависеть от того что прилетит из npm
>А если бы бабушка была дедушкой...была она дедушкой. left-pad удалили, загрузили другие люди, по новой уже с трояном.
А недавно код делающий rm -rf / даже в 3Д движек Unity пролез, а не то что во фронтэнд.
isInteger специально для тебя, под все браузеры начиная с IE 4
> isFinite(num)Во-первых, isFinite не нужен, когда уже есть Number.isFinite, в который здесь гарантированно передадут number. Во-вторых, {Number.,}isFinite не нужны, и все прекрасно работает без них. Вердикт: написанный наспех isInteger оказался не настолько удачным, как в критикуемом однострочнике из npm: https://github.com/tjmehta/is-positive-integer/blob/master/i...
> left-pad удалили, загрузили другие люди, по новой уже с трояном
А это в которой из параллельных вселенных произошло?
> недавно код делающий rm -rf / даже в 3Д движек Unity пролез
То, что самолеты иногда падают, не повод отказываться от них. В npm как и с самолетами: в новостях светятся только катастрофы.
Во-первых Number.isFinite() появилось гораздо позже чем isFinite хотя до этого анонимный эксперт рассказывал про поддержку браузеров до IE 9.
Во-вторых isFinite гарантировано отсечет специальные значения.
Вердикт: анонимный эксперт либо троллит, либо не понимает о чем пишет...
> isFinite гарантировано отсечет специальные значенияif (foo && foo && foo) // шоб гарантировано, шоб наверняка
Найди мне non-finite number значение, для которого % 1 === 0.
"Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM
Особенно существенные проблемы возникли из-за удаления модуля left-pad, который выполняет простейшую функцию добавления лидирующих пробелов для доведения строки до заданного размера и содержит всего 11 строк кода. В феврале было загружено около 2.5 млн копий left-pad, а среди зависимых от него разработок оказались тысячи проектов, в том числе Node, React и Babel."видимо не в той в которой находится тролль.
Удалением известных модулей также воспользовались предприимчивые деятели, которые разместили в NPM собственные подставные модули с именами, совпадающими с удалёнными модулями. Не исключено, что эти модули совершают скрытую вредоносную активность.
Как я уже сказал: в новостях публикуют катастрофы. Никто не публикует новости типа "библиотека xxx обновилась, и в ней не оказалось троянов" -- их можно клепать по десятки тысяч в день, если не в час. google: ошибка выжившегоДалее, к высокопопулярным пакетам приковано повышенное внимание, так что подсунуть троян проблематично. Если боишься, выруби интернет. В нормальном мире здраво взвешивают все риски, а не занимаются poisoning the well.
> удаления модуля left-pad
Цитируешь только так, как удобно? "“I think I have the right of deleting all my stuff,” Koçulu wrote on March 20 in an email that was later made public." — https://qz.com/646467/how-one-programmer-broke-the-internet-.../
Ни о каком трояне в left-pad речь никогда не шла. Вердикт: анонимный эксперт либо троллит, либо не понимает о чем пишет...
>typeof num === "number"жесть какая, function isInteger(Number num) куда логичнее.
> function isInteger(Number num) куда логичнееНачнем с того, что в тайпскрипте можно явно указывать тип аргументов — будет проверен на этапе сборки без рантайм-оверхеда. Закончим тем, что Number и number — разные вещи, так что ни о какой логике в твоем примере речь не идет. google: js boxing. google: java boxing
>Начнем с того, что в тайпскрипте можно явно указывать тип аргументов — будет проверен на этапе сборки без рантайм-оверхеда.спасибо кэп!
>Закончим тем, что Number и number — разные вещи, так что ни о какой логике в твоем примере речь не идет.
Ожидаемо :), потому явно написал с большой буквы. А теперь про логику:
функция сложить(хер, палец)
функция сложить(число, число)разница есть при чтении?
> так что ни о какой логике в твоем примере речь не идетхочу отметить, что теория типов, это раздел формальной логики, и язык программирования это формальный язык, а теперь вспомним для чего выдвигалась теория типов? Выше привел пример двух функция сложить, если не ясен мой посыл в коментах, могу пояснить на пальцах.
> google: java boxingНу и каким боком опеннетный эксперт притянул java к javascript?
JavaScript is to Java as hamster is to ham. (c)
ну там намек на Number был, мол это в той же Java есть класс, забыв собственно что есть понятие класс.https://en.m.wikipedia.org/wiki/Class_(computer_programming)
раздел Class vs type к прочтению экспертам.
Именно! Я выше тоже об этом написал, - печально, но факт. Порой кажется, что люди перестали думать собственной головой:(
Шашечки или ехать в длинной перспективе выглядит именно так.
На самом деле сама себя раскритикую. Реализация дробных чисел для десятичной системы счисления это крайне сложно, это не однострочник isArray который можно написать с закрытыми глазами.
Такие вещи должны быть в стандартной библиотеке, а раз нет устанавливать из пакета или использовать язык в котором они есть, например java, c# и т.д.
*в стандартной библиотеке, а раз в стандартной библиотеке нет,
> /tmp/git-updater.binИ что же он делал? Майнил что-ли?
Безопастность памяти и типобезопасность - не равно отсутствию уязвимостей или логических ошибок. Type/memory safety != security.А теперь, пожалуйста, ваши вопросы.
Спасибо, кэп!
> Безопастность памяти и типобезопасность - не равно отсутствию уязвимостей или логических ошибок. Type/memory safety != security.
> А теперь, пожалуйста, ваши вопросы.Не порть местным Экспертусам праздник!
а бывают не логические ошибки? Так-то выход за границы буфера это тоже логическая ошибка
Ты его сейчас поломаешь
Не-а, выход за пределы буфера в C — это не логическая ошибка. Логическая — это когда, несмотря на её наличие, программа является корректным, грамматически правильным текстом на соответствующем языке. Но выход за границы буфера — это undefined behavior, а программа, допускающая undefined behavior, не является грамматически корректной. Собственно, как это ни пародоксально, ни одна программа на C не содержит undefined behavior. Потому что те тексты программ, которые undefined behavior содержат, C-программами не являются.
> программа, допускающая undefined behavior, не является грамматически корректной.Ты все перепутал. Программа, проходящая компиляцию (с проверкой типов и тп) - грамматически корректна.
Но если она все равно неправильно работает, то она семантически некорректна.
Грамматика, смысл/семантика - это логики разного уровня.
> выход за пределы буфера
В rust'е ловится рантаймом (который "отсутствует"), а не во время компиляции.
> Программа, проходящая компиляцию (с проверкой типов и тп) - грамматически корректна.Только если забыть про undefined behavior. Программы с undefined behavior — это как раз класс грамматически невалидных программ, которые, одинако, _могут_ не отсеиваться компилятором (но могут и отсеиваться как некорректные, хотя чаще это за пределами возможностей компилятора). Работать при этом она может даже «правильно», но на самом деле просто нельзя спрашивать о семантической корректности такой программы.
> В rust'е ловится рантаймом (который "отсутствует"), а не во время компиляции.
В простых (тривиальных случаях) может и во время компиляции ловится. Но это Rust,
> грамматикаС тобой трудно дискутировать, используешь термин "грамматика", как захочется.
Что такое грамматика языка (программирования)?
"Крокодил съел солнце" - это грамматически правильно? А по смыслу/семантике? А в семантике (смысле) детской сказки?
> undefined behavior
> грамматически невалидных программПоведение - это семантика. По семантике (замыслу) вполне можно придумать ситуацию, когда именно хочется получить "неопределенное поведение".
Это другой уровень логики.
Я хочу написать _грамматически_правильную_конструкцию_ языка, в которой будет неопределенное поведение (крокодил съел солнце).
Грамматика — это совокупность правил, которым должен удовлетворять текст программы, чтобы считаться грамматически-правильным. В случае естественных языков определение аналогично. Грамматическая правильность в случае естественных языков — штука неточная, хотя в большинстве случаев её можно считать точной.В случае языка программирования представляется наиболее естественным считать грамматически-корректными такие тексты, для которых любой идеальный (соответствующий стандарту и не содержащий багов) компилятор гарантированно продуцирует некоторый выходной (объектный/бинарный) файл. Для программы, содержащей undefined behavior, компилятор не обязан этого делать. Может, но не обязан.
> вполне можно придумать ситуацию, когда именно хочется получить "неопределенное поведение".
Не всё, что можно придумать, можно реализовать на практике.
Это ты себе каждый раз повторяй перед тем, как в очередной раз будешь писать про дырявую сишку ;)
Продвинутые системы типов позволяют ловить и логические ошибки. А ошибку вроде обсуждаемой выявила бы даже довольно слабая система типов хаскеля — IO, чистота, монады, это все.
Репозитории не нужны. Уважающий себя программист с инженерным образованием будет все писать с нуля на стандартной библиотеке.
Ты это рассказывай дальше, не останавливайся. Зачем человеку, которого ты описываешь раст?
чтобы знать как делать не надо
Интернет не нужен. Уважающий себя программист с инженерным образованием будет все комментарии писать в собственноручном, с нуля созданном Интернете.
А придётся
а я вот работал в нескольких компаниях в США, где мы использовали libuv, а не начали писать свой event-driven велосипед с нуля. А собственно нахера, если оно уже есть и работает отлично?
Как нахера? Чтобы избежать тайпсквоттинга. А вдруг, скачивая libuv, ты скачаешь с фишингового сайта, и поставишь себе бекдор? Нет, уж, выдерни штекер интернета из компьютера, и пиши всё с нуля.
Вот оно вскрываться начинает: "cargo --- существенная (неотъемлемая?) часть экосистемы rust с единственной реализацией компилятора (привет от Томпсона) и контролируемая славным попечительским советом".
>> https://github.com/Rust-GCC/Reporting/blob/main/2022-05-09-r...
> Вот оно вскрываться начинает: "cargo --- существенная (неотъемлемая?) часть экосистемы
> rust с единственной реализацией компилятора (привет от Томпсона) и контролируемая славным попечительским советом".Соломенное чучело - существенная (неотъемлемая?) часть экосистемы opennet ...
Выражали бы свою мысль. (Хотел сказать "... яснее", но, пожалуй, точка будет корректнее). То, что по упомянутой ссылке на "некие 7 дней из жизни rust" нет слова cargo?
>> с единственной реализацией компилятора
> Выражали бы свою мысль. (Хотел сказать "... яснее", но, пожалуй, точка будет корректнее).Корректнее будет пожалуй опредление "очердная опеннетная демагогия".
> То, что по упомянутой ссылке на "некие 7 дней из жизни rust" нет слова cargo?
И нет, сетевые репы - не неотъемлемая часть cargo.
https://doc.rust-lang.org/cargo/faq.html
>> Cargo, at its heart, will not attempt to access the network unless told to do so. That is, if no crates come from crates.io, a git repository, or some other network location, Cargo will never attempt to make a network connection.Как впрочем и необходимость самого cargo
man rustc
https://doc.rust-lang.org/rustc/command-line-arguments.html
> И нет, сетевые репы - не неотъемлемая часть cargo.
> Как впрочем и необходимость самого cargoman rustc
И? Это фича преподносимая как плюс, хотя является явным минусом.
Единственный выход. Удаление cargo и всего с этим связанного.
Вплоть до анализа компилятором вызвавшей его программы и отказа при обнаружении cargo.
Я не думаю, что кто-либо будет это далать.
Так что сами себя закапывают. Можно только горсть земли сверху кинуть.
> man rustc
> И? Это фича преподносимая как плюс, хотя является явным минусом.Потому что гладиолус?
> Единственный выход. Удаление cargo и всего с этим связанного.
> Вплоть до анализа компилятором вызвавшей его программы и отказа при обнаружении cargo.
> Я не думаю, что кто-либо будет это далать.
> Так что сами себя закапывают. Можно только горсть земли сверху кинуть.Сам что-то придумал, сам что-то доказал ...
> Потому что гладиолус?Смотри тему новости и новости об npm.
Факты доказывают очевидную ущербность такого построения инфраструктуры вокруг языков.
>> Потому что гладиолус?
> Смотри тему новости и новости об npm.И то ли дело прикрученные сбоку на сопли "14-ти стандартные" билдсистемы с отдельным "depens.sh" и wget внути. Или кучи затрояненых инсталляторов/бинарников, ага.
> Факты доказывают очевидную ущербность такого построения инфраструктуры вокруг языков.
Факты в виде целой кучи билдсистем разной степени костыльности для "труЪ-ЯП" доказывают ущербность построения инфраструктуры без оных.
А "факты" - пока что лишь доказывают очередное сражение опеннетчиков с очередным соломенным чучелом.
Про демагогию --- это к вам. Чисто теоретически, cargo не часть rust. На практике без cargo потянут только маргиналы, но они и от rust'а не фанатеют."Not liking Cargo is hard." (https://users.rust-lang.org/t/my-reluctance-about-using-carg...)
<snip>
Use Cargo.Pretty much the entire ecosystem is based around you using Cargo. Things are not added to the standard library on the basis of "people use Cargo." The compiler's command-line interface is optimised based on the assumption that you are using Cargo. Many Rust tools are designed on the assumption that you are using Cargo.
Avoiding Cargo is not going to make your life easier, it is going to make it significantly harder.
...
</snip>
https://www.reddit.com/r/rust/comments/8ckp8w/creating_a_lib.../Ну, и так далее, в том же духе.
> Про демагогию --- это к вам. Чисто теоретически, cargo не часть rust.
> На практике без cargo потянут только маргиналы, но они и от rust'а не фанатеют.Чисто теоретически - куча билдсистем тоже не часть "ТруЪ ЯП". На практике ...
> "Not liking Cargo is hard." (https://users.rust-lang.org/t/my-reluctance-about-using-carg...)
Ага, а еще "not liking make/CMake/ninja/maven/... is hard".
> Ну, и так далее, в том же духе.
Да, в духе очередной Великой Битвы с соломенными чучелами.
И на практике не часть. Язык отдельно, сборка отдельно. Что вполне хорошо.
К слову сказать, Cargo не обязательно будет тянуть зависимости с crates.io. Можно указывать и локальные пути, и ссылки на гит-репозитории, и на свой собственный репозиторий, аналог crates.io.
Вы что, действительно не понимаете разницу между "можно сделать, чтобы тянуть из сетки" и "можно сделать, чтобы из сетки не тянуть"?
>> Cargo, at its heart, will not attempt to access the network unless told to do so.
> Вы что, действительно не понимаете разницу между "можно сделать, чтобы тянуть из
> сетки" и "можно сделать, чтобы из сетки не тянуть"?Может, разницу между "читать глазами" и "читать не глазами, а этимсамымместом"?
глупость --- существенная (неотъемлемая!) часть экосистемы opennet
не мешайте глупцам совершать глупости.
Решение уже известно, тут рядом в комментариях засела партия писателей всего с нуля =)
> партия писателей всего с нуля =)Главное, не просить у них ссылок на их проекты, а то выяснится, что
пишут они лишь комментарии и "ценные указания для разработчиков".
С такой халатностью к репозиториям можно сказать что велосипеды это не так уж и плохо.
> велосипедыКаждый велосипед надо регистрировать в crates.io, ой, в реестре велосипедов, иначе это незарегистрированный (нелегальный, ворованный) велосипед.
Причём когда ты этот велосипед заберёшь из реестра велосипедов и будешь на него садиться, кто-то ловко снимет с него сиденье. Но узнаешь ты об этом только по необычным ощущениям.
ещё один nodejs
Удобненький язычок с удобненьким пакетным менеджером.
А какой легкочитаемый синтаксис - просто песня
Десткий язык с детскими болезнями
В джаве и сисярпе таж фигня
И... мы нашли убивца сисярпа!
Ну правильно, еще не хватало читать сорец того что вам льют в репы, особенно обфусцированый.
Ну правильно, еще не хватало читать сорец того что вам льют в репы, особенно обфусцированый. А фичастый stdlib (кто там сеть хотел) и кислотный синтаксис сделает обнаружение бэкдоров не слишком скучным занятием.
> обнаружение бэкдоровПроще простого, надо искать в unsafe.
в практически всех языках net есть в стандартной библиотеке
шарпы, джава, питон, го передают приветы
Вот вам и хвалёный Rust,коий так все обожествляют в якобы сверх безопасности. Безопасных языков программирования не бывает тем более во времена нейросетей и ИИ.
Спасибо, поржал.
Ну, бэкдор-то -- хотя бы не течëт?
Нет, он просто требует диктатуру пролетариата и занимается раскулачиванием CI.
Вот кстати да, я лично уверен что он вообще был написан не по гайдлайнам и там из unsafe вызывался сторонний код на вонючей сишке, а как известно сишка...
Сам то ты на чем пишешь?
на опеннетах
А где-то этот пакет еще можно скачать? Мне для научных целей.
Ой как безопасненько!
Надеюсь, что подобные проекты получат новый импульс развития: https://rustsec.org
А что означает краб на щите? Я серьёзно спрашиваю, поскольку видел такое на логотипах проектов совсем иной направленности.
Твой мозг слишком ограничен чтобы понять трансцедентные вещи. Лапоть высоких материй не поймёт.
Боюсь, что "dumps & cards" рядом с крабом так же останутся непонятны. ;)
> А что означает краб на щите? Я серьёзно спрашиваю, поскольку видел такое
> на логотипах проектов совсем иной направленности.https://rustacean.net/
> unofficial mascot for Rust.
Спасибо, но не нашёл там объяснений, что означает сей неофициальный логотип. Только "My pronouns are any--she/he/they/it are all great!"