The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проект по созданию реализации zlib на языке Rust, opennews (??), 11-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


8. "Проект по созданию реализации zlib на языке Rust"  +11 +/
Сообщение от Страдивариус (?), 11-Апр-24, 09:20 
Пишу на rust по работе. Отличный язык. Но не для обычных программ пока что. Запилить микросервис для раскатки в контейнере на кубе - огонь. Но делать на нём апликухи для юзеров - нет. Пока не будет стабильного ABI, пока crate'ы не будут нормально работать shared object'ам без необходимости иметь по 40 различных версий одновременно, пока std::lib не наберёт достаточной мощи, чтобы отказаться от внешних crate'ов с самыми элементарными вещами - не готово для десктопа. Так же ждём захвата популярных crate'ов злоумышленниками с целью внедрения зловредов.

Превращение своего проекта в нечто путём автомагической скачки, не глядя, всех зависимостей и зависимостей их зависимостей, не может в итоге закончиться чем-то кроме помойки (

Ответить | Правка | Наверх | Cообщить модератору

12. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (12), 11-Апр-24, 09:26 
> пока crate'ы не будут нормально работать shared object'ам без необходимости иметь по 40 различных версий одновременно

Ахахаха, это реально правда?

Ответить | Правка | Наверх | Cообщить модератору

27. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от ferris (?), 11-Апр-24, 09:47 
Не совсем. Есть поддержка стандартного FFI через C ABI, оно стабильное и с обратной совместимостью. Но на практике работать немного больно, т.к. доступны только примитивы, Box, Option, и ещё пару структур. Но через C ABI это в любом языке так будет.
Ответить | Правка | Наверх | Cообщить модератору

204. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Аноним (204), 11-Апр-24, 20:32 
То есть правда.
Ответить | Правка | Наверх | Cообщить модератору

247. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Прохожий (??), 13-Апр-24, 09:07 
То есть, не совсем. Это означает, что частично.
Ответить | Правка | Наверх | Cообщить модератору

263. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Страдивариус (?), 15-Апр-24, 00:23 
> Не совсем. Есть поддержка стандартного FFI через C ABI, оно стабильное и
> с обратной совместимостью. Но на практике работать немного больно, т.к. доступны
> только примитивы, Box, Option, и ещё пару структур. Но через C
> ABI это в любом языке так будет.

Я правильно понимаю, что ты предлагаешь двум нативным рустовым крейтам дружить через сишный FFI? )

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

121. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Бывалый Смузихлёб (ok), 11-Апр-24, 12:49 
как и всё остальное
В общем и целом, сказки примерно те же что с жабой и жс
> Эй, оно же интерпретируемое, оно по определению не может быть дырявым и уязвимым(тм)[для жс. Но годится для обоих]
> Эй, там ведь продвинутое управление памятью и карманный движок того кого надо
> Сам байткод не может исполняться на ЦП, т.е оно в принципе не может содержать дыр
> Ведь он не неограниченно-жирнющий, а его разрабы - не долб**ы(ты)

Но вот теперь и раст ещё и компилируемый, героически спасает от дыр в ЯП где дыр точно так же не должно было быть в принципе
Но зачем ?

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

203. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Молодой Смузихлёб (?), 11-Апр-24, 20:29 
> Эй, оно же интерпретируемое, оно по определению не может быть дырявым и уязвимым(тм)[для жс. Но годится для обоих]

И в чём они не правы? Чтобы сделать уязвимость на жс это нужно постараться. Практически все движки написаны на С++ и существуют давно, но что-то никто не берётся их переписывать на священную ржавчину.

Ответить | Правка | Наверх | Cообщить модератору

230. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Бывалый Смузихлёб (ok), 12-Апр-24, 11:37 
Большая проблема где угодно начинается с JIT в том виде в котором он есть
Это, вроде бы, даёт и серьёзный прирост производительности, но проблема в том, что при желании можно даже под конкретное число тактов проца совершенно конкретные команды подстраивать( ведь заранее известно каков будет выхлоп по коду )

Если глянуть исходники того же вебкита, то там обнаружится много интересного. Вплоть до подобий компиляторов под разные железки со своими ассемблерами. И всё начинается с жс

Ответить | Правка | Наверх | Cообщить модератору

28. "Проект по созданию реализации zlib на языке Rust"  +6 +/
Сообщение от Карлос Сношайтилис (ok), 11-Апр-24, 09:50 
> пока std::lib не наберёт достаточной мощи, чтобы отказаться от внешних crate'ов

Очень надеюсь что этого не случится никогда. Иначе Раст ждёт участь питона с его огромной стд либой. Сегодня добавляют очень нужную штуку, а через несколько лет она уже никому не нужна, но поддерживать надо, из стандартной библиотеки просто так код не выкинешь

> иметь по 40 различных версий одновременно

Это ты про что? Можно пример?

> ждём захвата популярных crate'ов злоумышленниками с целью внедрения зловредов

Не только конкретно зловреды. Сами авторы могут внезапно превратить пакет в тыкву, по своему желанию.
От этого вообще непонятно как защищаться. Общая проблема для всех централизованных пакетных репозиториев (

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

30. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от ferris (?), 11-Апр-24, 09:56 
> Это ты про что? Можно пример?

Чел хочет линковать объектные файлы скомпилированные разными версиями раст компилятора, при этом чтобы структуры у него в коде были помечены как `#[repr(Rust)]`. Ну удачи ждать, чо, такое очень не скоро будет, это очевидно.

Ответить | Правка | Наверх | Cообщить модератору

214. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Карлос Сношайтилис (ok), 12-Апр-24, 00:00 
Это?

https://github.com/rust-lang/rust/pull/114201/

Ответить | Правка | Наверх | Cообщить модератору

33. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Loki13 (ok), 11-Апр-24, 09:59 
>От этого вообще непонятно как защищаться. Общая проблема для всех централизованных пакетных репозиториев

Пускать новые версии в _централизованный_ репозиторий только после проверки независимым комитетом? Что-то вроде мейнтейнеров в дистрибутивах, мейнтейнеры репозитория. Тогда, даже если автор сойдет с ума, его диверсия не пройдет дальше его гита.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

56. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (56), 11-Апр-24, 10:49 
Просто никаких авторов не будет и всё.
Ответить | Правка | Наверх | Cообщить модератору

60. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Анонин (-), 11-Апр-24, 10:52 
> Что-то вроде мейнтейнеров в дистрибутивах, мейнтейнеры репозитория.

А как это решает проблему? Ты начинаешь зависеть от прихоти мейнтейнера.
И от их компетентности, что на верное еще хуже.
Сильно тебе помогли мейнтейнеры в ситуации с xz?

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

191. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Loki13 (ok), 11-Апр-24, 19:03 
> Сильно тебе помогли мейнтейнеры в ситуации с xz?

Ну с xz всё же единственный случай за много лет. И в итоге мейнтейнеры в дистрибутивах оперативно откатили проблемные пакеты и они больше не могут попасть к пользователям. Так что как дополнительный рубеж, вполне может быть работоспособным.

Ответить | Правка | Наверх | Cообщить модератору

217. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (217), 12-Апр-24, 00:46 
Единственный ставший известным.
Ответить | Правка | Наверх | Cообщить модератору

218. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (218), 12-Апр-24, 00:59 
> Единственный ставший известным.

доказывай.

Ответить | Правка | Наверх | Cообщить модератору

264. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Страдивариус (?), 15-Апр-24, 00:28 

>> иметь по 40 различных версий одновременно
> Это ты про что? Можно пример?

Так чё тут примеров искать? Открой свой Cargo.lock файл и посмотри какие там зависимости зафиксированные. Очень удивлюсь, если у тебя не будет ситуевины, когда один и тот же крейт не будет присутствовать несколько раз. Например, у меня reqwest тянет одну версию крейта h2, а actix - другую. И это я ещё вычищаю зоопарк там, где можно подыграть версии крейтов так, чтобы они от одной и той же версии зависимости зависели. Так-то я как-то видел и по 5 версий одного крейта в Cargo.lock.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

267. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Карлос Сношайтилис (ok), 15-Апр-24, 09:16 
Чел про другое писал, походу.

Но дублирование крейтов тоже имеет место быть. Я бы его расценивал как "необходимое зло". Всё же больше помогает, чем мешает. К тому же аффектит только скорость компиляции.
Если проект большой, то уже приходится обращать на это внимание, да

Ответить | Правка | Наверх | Cообщить модератору

36. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Аноним (36), 11-Апр-24, 10:04 
> пока std::lib не наберёт достаточной мощи, чтобы отказаться от внешних crate'ов с самыми элементарными вещами

Ага, в C++ библиотека достаточно мощна, чтобы не использовать внешние либы. А в C так еще мощнее!

> автомагической скачки, не глядя, всех зависимостей и зависимостей их зависимостей, не может в итоге закончиться чем-то кроме помойки

Лол. Расскажи, как ты устанвливаешь зависимости в проекте на C++?

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

80. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Маняним (?), 11-Апр-24, 11:17 
> Лол. Расскажи, как ты устанвливаешь зависимости в проекте на C++?

Руками, осознанно - осёл. И тысячу раз думаешь: действительно это тебе нужно или нет? Выбираешь,  проверяешь, решаешь и отвечаешь за зависимости и зависимости зависимостей ты, а не дядя левый, не ИИ.

Ответить | Правка | Наверх | Cообщить модератору

95. "Проект по созданию реализации zlib на языке Rust"  +3 +/
Сообщение от BeLord (ok), 11-Апр-24, 11:51 
Динозавры встречаются чаще, чем подобный подход, к сожалению. Обычный dev c трудом представляет, где его код лежит через полгода и что это код делает, про зависимости я просто молчу-)))
Ответить | Правка | Наверх | Cообщить модератору

166. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Аноним (166), 11-Апр-24, 16:06 
И кто мешает растовику тысячу раз подумать, включать ли очередной крейт в проект? И проверить эти зависимости и зависимости зависимостей, как в си/плюсах? И после проверки скачать это в локальный репозиторий и проект подключить только на локальный? И, так же как в си/плюсах, в случае обновлений, снова всё перепроверять и перекачивать в локальный репозиторий?

> И тысячу раз думаешь

рассмешил, осел.

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

212. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Александр (??), 11-Апр-24, 22:51 
В отличие от многих современных языков в C и C++ зависимости - это целая эпопея. Это не строчку прописать в каком-то конфиге. Тут начинаются вопросы о том, как прикрутить. В линуксе с этим несколько проще, так как в роли централизации собственно, сам пакетный менеджер дистра выступает. А на винде тот ещё треш. Не редко в нишевых или не опенсорсных проектах нужные либы вообще в исходниках затягивают к себе в репу, а то и под местную систему сборки. Ещё и падчинг не редкий. Тут хочешь-не хочешь, треть либы само собой освоится
Ответить | Правка | Наверх | Cообщить модератору

224. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Советский инженер (ok), 12-Апр-24, 08:25 
>В отличие от многих современных языков в C и C++ зависимости - это целая эпопея.

вот ииенно.
сначала затягивают зависимости недедями, а потом годами боятся снова повторить этот челендж.
и имеем проекты с протухшими зависимостями.

Ответить | Правка | Наверх | Cообщить модератору

89. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (89), 11-Апр-24, 11:31 
>Ага, в C++ библиотека достаточно мощна, чтобы не использовать внешние либы. А в C так еще мощнее!

Как будто это не так. GLibc может всё, на что способно ядро плюс ещё дополнительно засчёт комбинации возможностей системных вызовов.

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

111. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Аноним (36), 11-Апр-24, 12:07 
Сколько софта в твоем дистре зависят сугубо от glibc и ни от чего больше?
Ответить | Правка | Наверх | Cообщить модератору

114. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Советский инженер (ok), 11-Апр-24, 12:14 
>Как будто это не так. GLibc может всё, на что способно ядро плюс ещё

так ты это объясни чуваку которому в расте стандартная либа недостаточно мощная

Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

129. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Anony (?), 11-Апр-24, 13:03 
Пакетный менеджер системы, стрононние пакетные менеджеры (conan, vcpkg, xmake и т.д.). Руками можно поставить представь себе. CMake тоже может скачать и настроить проект в качестве зависимости.

Что дальше?

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

135. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Аноним (36), 11-Апр-24, 13:19 
> Пакетный менеджер системы, стрононние пакетные менеджеры (conan, vcpkg, xmake и т.д.). Руками можно поставить представь себе. CMake тоже может скачать и настроить ...

Ну, вот. Теперь объясни, почему именно с Растом это вдруг стало проблемой.

Ответить | Правка | Наверх | Cообщить модератору

149. "Проект по созданию реализации zlib на языке Rust"  +1 +/
Сообщение от Аноним (149), 11-Апр-24, 14:27 
Единая точка отказа.
Ответить | Правка | Наверх | Cообщить модератору

157. "Проект по созданию реализации zlib на языке Rust"  –1 +/
Сообщение от Anony (?), 11-Апр-24, 14:46 
>> Пакетный менеджер системы, стрононние пакетные менеджеры (conan, vcpkg, xmake и т.д.). Руками можно поставить представь себе. CMake тоже может скачать и настроить ...
> Ну, вот. Теперь объясни, почему именно с Растом это вдруг стало проблемой.

Для меня не проблема, это как бы растовики сам считают проблемой пакетные менеджеры с++. Хотя я думаю растовики ничего сложнее hello world не писал на плюсах.

Мне на карго как человеку который пишет на С++ как хобби все равно :)

Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

167. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Аноним (166), 11-Апр-24, 16:11 
> Хотя я думаю растовики ничего сложнее hello world не писал на плюсах.

Какие же вы ограниченные. И узнавать что-то, что противоречит вашему маня-мировоззрению, категорически не хотите. Даже жалко вас. Поспрашивай гугловцев, каких "hello world"'ов и сколько у них уже на расте написано. и Их мнения и планы насчет раста.

Ответить | Правка | Наверх | Cообщить модератору

168. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Anony (?), 11-Апр-24, 16:18 
Первым языком который я изучал как раз был rust. После уже перещел на С++.
Причем тут ограниченность? Причем тут программисты из гугла? Если они хотят избавиться от С++ ну и бог с ними.
Ответить | Правка | Наверх | Cообщить модератору

169. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Anony (?), 11-Апр-24, 16:23 
Я против раста ничего против не имею. Хороший язык да и пользуюсь терминалом alacritty каждый день.
Меня забавляют растовики которые топят за раст смешивая в одну кучу C и C++. и пишут что чуть ли hello world усыпан UB и течет. И я это замечаю, словно какая-то пропоганда против С++ и С.
Ответить | Правка | К родителю #167 | Наверх | Cообщить модератору

213. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Александр (??), 11-Апр-24, 23:05 
> Пакетный менеджер системы

Windows. Если только msys2, но там свои приколы.
> conan

Первой версии был годным. Очень легко прикручивался почти к любой системе сборке. Во второй дичь нагородили. Ещё и bintray убрали. И вот недавно у друга: cmake + Conan + wsl2. Веселились неделю. Ну, то есть на порядок больше телодвижений.
> vcpkg

В принципе, хорош. Но последний раз, когда использовал, пакетов было маловато.
> xmake

На сколько помню, это система сборки. К пакетным менеджерам отношения не имеет.
> CMake тоже может скачать и настроить проект в качестве зависимости.

Особенно, когда зависимости не на CMake. Всё же мир C и C++ известен своим зоопарком симтем сборки

Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

232. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Anony (?), 12-Апр-24, 13:37 
Но cmake может решить зависимости (скачать, подготовить и собрать).

На счет зоопарка это да. Но все же есть пакетные менеджер и без жесткой привязке к одному пакетному менеджеру

Ответить | Правка | Наверх | Cообщить модератору

55. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (55), 11-Апр-24, 10:46 
>Превращение своего проекта в нечто путём автомагической скачки, не глядя

Да еще и антибезопасно

Кстати, как там с симд? Как не взгляну, все висит плашка что симд доступно только в ночных сборках

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

74. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (68), 11-Апр-24, 11:10 
> без необходимости иметь по 40 различных версий одновременно

Каждый решает "ад зависимостей" по своему. Но если возникло 40 версий пакетов в сборке, то явно в зависимостях тухляк, который всё это и тянет.

> Превращение своего проекта в нечто путём автомагической скачки, не глядя, всех зависимостей и зависимостей их зависимостей, не может в итоге закончиться чем-то кроме помойки

И надо исправлять это.

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

107. "Проект по созданию реализации zlib на языке Rust"  +2 +/
Сообщение от Cykooz (ok), 11-Апр-24, 12:00 
> Превращение своего проекта в нечто путём автомагической скачки, не глядя, всех зависимостей и зависимостей их зависимостей, не может в итоге закончиться чем-то кроме помойки (

Про "не глядя" это ты кому в упрёк ставишь? Инструментарию языка или разработчику? По моему это личный косяк разработчика, что он не глядя на зависимости добавляет их в свой проект, а потом ещё и обновляет на новые версии тоже не глядя. Ни какой язык, ни его инструментарий этот косяк решить не способен. Можно всё то же самое делать вручную, и тоже не глядя.

Инструментарий раста позволяет просмотреть все зависимости, зафиксировать их версии и чек-суммы. В итоге получится проект, защищённый от неожиданных обновлений или подмены кода зависимостей на что-то вредное.

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

113. "Проект по созданию реализации zlib на языке Rust"  +3 +/
Сообщение от Аноним (36), 11-Апр-24, 12:12 
> Инструментарий раста позволяет просмотреть все зависимости, зафиксировать их версии и чек-суммы

Ты не понимаешь, нужно ВИДЕТЬ111

А если серьезно, этот подход без проблем применяется любом языке с пакетным менеджером, хоть в Python, хоть в Go, хоть в JavaScript. Нюанс в том, что местные воины против Раста ни на одном из них не пишут, и потому из новости в новость обоечены повторять одну и ту же чушь...

Ответить | Правка | Наверх | Cообщить модератору

164. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от Аноним (164), 11-Апр-24, 15:41 
Да никого из корпов не интересует десктоп, напилил сервисов, наклепал веба на реакте, опционально завернул в Электрон. Современные вычислительные мощности позволяют.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

175. "Проект по созданию реализации zlib на языке Rust"  +/
Сообщение от laindono (ok), 11-Апр-24, 17:12 
А зачем тебе использовать rust-abi разных версий вообще? Лично я знаю лишь один реальный случай, когда динамическая линковка раст в раст через раст в принципе используется. В bevy можно линковать нутро таким способом. Используется оно для ускорения компиляции и только для дебага. В реальном мире ты скорее хочешь либо статическую линковку, либо c-abi.

Жирный std не нужен. Он итак содержит некоторое количество вещей, которых лучше бы там не было по разным причинам (впрочем не критично).

Если у тебя специфические требования к безопасности и нужен аудит зависимостей, то скачиваешь, проверяешь и следишь, чтоб Cargo.lock не менялся. Опять же никто тебе не запрещает всё скачать и в папочку положить, впрочем с этим лучше к психиатру обратиться.

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру