The OpenNET Project / Index page

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

Проект Redox OS представил пакетный менеджер pkgar, написанный на языке Rust

16.03.2020 12:26

Разработчики операционной системы Redox, написанной с использованием языка Rust и концепции микроядра, представили новый пакетный менеджер pkgar. В рамках проекта развивается новый формат пакетов, библиотека с функциями управления пакетами и инструментарий командной строки для создания и извлечения криптографически проверенной коллекции файлов. Код pkgar написан на языке Rust и распространяется под лицензией MIT.

Формат pkgar не претендует на универсальность и оптимизирован с учётом специфики операционной системы Redox OS. Пакетным менеджером поддерживается верификация источника по цифровой подписи и контроль целостности. Контрольные суммы рассчитываются при помощи хэш-функции blake3. Связанная с верификацией функциональность pkgar может быть доступна без фактического сохранения архива пакета, манипулируя только заголовочной частью. В частности, пакет образуют заголовочный файл (.pkgar_head) и файл с данными (.pkgar_data). Корректно подписанный полный сводный пакет (.pkgar) может быть получен путём простого присоединения файла с заголовком к файлу с данными ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Файл с заголовком содержит отдельные контрольные суммы для заголовка и структур с параметрами из файла данных, а также цифровую подпись для проверки пакета. Файл c данными включает последовательное перечисление всех файлов и каталогов, поставляемых в пакете. Перед каждым элементом данных приводится структура с метаданными, которые включают контрольную сумму для самих данных, размер, права доступа, относительный путь устанавливаемого файла и смещение параметров следующего элемента данных. Если в процессе обновления отдельные файлы не изменились и контрольная сумма совпадает, то они пропускаются и не загружаются.

Проверить целостность источника можно получив лишь заголовочный файл, а корректность выбранного файла с данными - загрузив лишь структуры с параметрами этого файла и удостоверившись в их соответствии контрольной сумме, заверенной в заголовочном файле. Непосредственно сами данные можно проверить после их загрузки, используя контрольную сумму из cтруктуры с параметрами, идущей перед данными.

Пакеты изначально подразумевают возможность повторяемой сборки, подразумевающей то, что создание пакета для определённого каталога всегда приводит к формированию идентичного пакета. После установки в системе сохраняются лишь метаданные, которых достаточно для реконструирования пакета из установленных данных (состав пакета, контрольные суммы, пути и права доступа имеются в метаданных).

Основные цели pkgar:

  • Атомарность - обновления применяются по возможности автоматически.
  • Экономия трафика - данные передаются по сети только при изменении хэша (при обновлении загружаются только изменившиеся файлы).
  • Высокая производительность, задействованы быстрые криптографические алгоритмы (blake3 поддерживает распараллеливание обработки данных при вычислении хеша). Если данные из репозитория не были ранее прокэшированы хэш для загружаемых данных может быть вычислен во время загрузки.
  • Минималистичность - в отличие от других форматов, pkgar включает только метаданные, необходимые для извлечения пакета.
  • Независимость от каталога установки - пакет может быть установлен в любой каталог, любым пользователем (пользователь должен иметь право на запись в выбранный каталог).
  • Безопасность - пакеты всегда криптографически верифицируются, а верификация выполняется до совершения фактических операций с пакетом (вначале загружается заголовок и если цифровая подпись верна, во временный каталог загружаются данные, которые перемещаются в целевой каталог после верификации).


  1. Главная ссылка к новости (https://www.redox-os.org/news/...)
  2. OpenNews: Прогресс в использовании ОС Redox на реальном оборудовании
  3. OpenNews: Выпуск операционной системы Redox OS 0.5, написанной на языке Rust
  4. OpenNews: Facebook выпустил Yarn 1.0, пакетный менеджер для JavaScript
  5. OpenNews: Distri - дистрибутив для обкатки технологий быстрого управления пакетами
  6. OpenNews: Началась разработка пакетного менеджера DNF 5 и замены PackageKit
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52546-pkgar
Ключевые слова: pkgar, redox, rust, packet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (109) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:03, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Очень годно, почаще бы так!
     
     
     
    Часть нити удалена модератором

  • 3.52, gogo (?), 17:25, 16/03/2020 [ответить]  
  • +4 +/
    А какая хрен разница? Есл оно работает - пусть себе работает.
     
  • 3.93, Брат Анон (?), 09:06, 17/03/2020 [ответить]  
  • +2 +/
    При всей моей нелюбви к ржавому (адепт гошечки) -- ОСь на ржавом -- это сильная заявка на победу. Надо уважать труд людей и понимать, что кое-кто даже блокнота за свою жизнь не написал.
     
  • 2.18, Нонон (?), 14:07, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Оно работает только на Redox OS
    Тебе то от этого какой профит?
     
     
  • 3.34, Аноним (34), 15:34, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не знаю насчет pkgar, да и меня pacman устраивает, но многие решения из Redox OS кроссплатфоременны. Например, GUI тулкит OrbTk или shell ion. Возможно, и его можно будет юзать и в Linux-дистрибутивах.
     
     
  • 4.56, Аноним (56), 17:49, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Определиться не могут GTK или не GTK уже лет 20 или 30, а ты тут про новинки.
     
  • 4.61, Коломойский (?), 18:08, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ion shell уже с пол года использую на Арче вместо командной оболочки(bash/zsh), вполне хватает для повседневных задач
     
     
  • 5.63, Аноним (34), 18:15, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мне не хватает комплишена от oh-my-zsh. Есть ion-plugins (https://gitlab.redox-os.org/redox-os/ion-plugins), которые по сути портируют плагины oh-my-zsh, но там сразу сказано, что ion не поддерживает плагины, связанные с автодополнением. Единственное, что останавливает от переката.
     
     
  • 6.85, Аноним (85), 01:53, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > oh-my-zsh

    Тормозное гуано для неосиляторов и мамкиных какиров.

     
     
  • 7.100, Аноним (100), 11:17, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому и хочу перекатиться, но комплишен слишком приятен.
     
  • 5.71, mommy (?), 20:10, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    До тех пор пока твоего крутого шелла не будет на большей части деплойных серверов, смысла и польнзы от нее почти ноль
     
     
  • 6.75, Аноним (34), 20:50, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну не знаю. Шелл, который ты используешь на своей машине для взаимодействия с системой, и шелл, который ты используешь для скриптов/удаленного доступа, для меня - две разные вещи. Т.е. для скриптов я бы предпочел bash, в силу большей переносимости, да и от того, что я пострадаю немного от голого баша по ssh, я тоже не помру. Но 90% времени я провожу в рамках собственной машины и делаю себе там все как удобно мне, и мне совершенно не важно, если мой рабочий шелл не будет POSIX-совместим - я из него любые скрипты, если нужно, запущу башем.
     
  • 4.77, Аноним (77), 21:49, 16/03/2020 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     

  • 1.2, Аноним (2), 13:05, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > пакет может быть установлен в любой каталог

    будет ли он при этом работать, если пути прописываются в бинарнике при сборке

     
     
  • 2.4, Аноним (4), 13:08, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В вопросе уже содержится ответ.
     
  • 2.9, Аноним84701 (ok), 13:22, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +16 +/
    >> пакет может быть установлен в любой каталог
    > будет ли он при этом работать, если пути прописываются в бинарнике при сборке

    … подсунули ей железный лом. «КРЯК!» — сказала пила. «Ага, мля!!!» — укоризненно сказали суровые опеннетные лесорубы! И ушли рубить лес топорами ...

     
  • 2.21, Wilem (?), 14:25, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пути внутрь бинаря зашивать не надо. Там могут быть умолчания, поверх которых можно в рантайме указать иные значения, но не более.
     

  • 1.5, Аноним (5), 13:09, 16/03/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

     ....ответы скрыты (3)

  • 1.10, Аноним (10), 13:24, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Посоветуйте актуальную полезную литературу по русту для нуба. 20 лет си с питоном и 1 день плюсов в бэкграунде (если не считать кути).
     
     
  • 2.11, Осведомленный аноним (?), 13:31, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://doc.rust-lang.org/book/
     
     
  • 3.12, Аноним (10), 13:33, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >2018

    Вот и я про то.

    ps его там на гцц портировать не собираются?

     
     
  • 4.13, Осведомленный аноним (?), 13:37, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gcc-шники что-то мутили (мутят), но rust пилят такими темпами, что сами за собой не успевают. Поэтому пока llvm и родные инструменты.
     
     
  • 5.79, Аноним (79), 23:17, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А как же запрет на использование названия "Rust" для альтернативных реализаций?
     
     
  • 6.118, Wilem (?), 21:08, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    GNU/Rust
     
  • 4.15, Аноним (15), 13:46, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Так-то издание 2018 - это актуальное издание. Все новые версии сейчас выходят в рамках издания 2018. Издание определяет breaking changes с предыдущими версиями. Все версии вышедшие в рамках издания 2018 не содержат breaking changes, но содержат их по отношению к изданию 2015.

    Подробнее тут: https://doc.rust-lang.org/edition-guide/editions/index.html

    Так что "The Book" - самое актуальное, что возможно найти по Rust в любой момент времени.

     
  • 2.14, крок (?), 13:40, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А надо ли оно тебе? Может лучше сети, железо поизучать?
     
     
  • 3.16, Аноним (10), 13:47, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Не всё же в сишке тухнуть. Голанг вот не особо зашёл, для себя преимуществ перед питоном (с си и цитоном, угу) не вижу. А тут вроде мощный выразительный язык, уже интересно для наколенных поделок всяких.
     
     
  • 4.17, Осведомленный аноним (?), 13:53, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Не всё же в сишке тухнуть. Голанг вот не особо зашёл, для
    > себя преимуществ перед питоном (с си и цитоном, угу) не вижу.
    > А тут вроде мощный выразительный язык, уже интересно для наколенных поделок
    > всяких.

    Rust - судя по всему следующий хайп-язык, который затащат в прод.. и скорее всего сделают это сурьёзные конторы. Потому есть смысл "расширить" кругозор, особенно с таким багажом в Си.  Golang на поверку оказался не так удобен/быстр/приятен/всемогущ, как обещали.. поиски лучшего языка продолжаются.

     
     
  • 5.20, Im banana man (?), 14:22, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Dart тоже хотели затащить - не вышло
    Ruby хотели затащить - не вышло
    C# хотели затащить - не вышло
     
     
  • 6.22, анонимчик (?), 14:30, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    A rust задащат. Потому-что там
    1) убийство С
    2) безопасность
    3) абстракции нулевой стоимости
     
     
  • 7.24, коржик (?), 14:49, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > 1) убийство С

    Рынок порешает

     
  • 6.25, qetuo (?), 14:53, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Это шарп-то не вышло?
     
     
  • 7.31, Wilem (?), 15:23, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чисто из интереса - а кто и где пользуется шарпом? Ну, кроме студентов кастомизирующих шарепоинт для заказчика.
     
     
  • 8.84, НяшМяш (ok), 01:07, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    С месяц назад запускал маме под вайном очередную бесплатную программу от налогов... текст свёрнут, показать
     
     
  • 9.111, Im banana man (?), 16:35, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надо ж А я Windows ставил в VirtualBox чтобы заполнить Декларацию 2019 ... текст свёрнут, показать
     
  • 8.101, ТВим (?), 11:52, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не поверишь, много контор его используют, особенно после того, как он стал кросс... текст свёрнут, показать
     
  • 6.41, Аноним (41), 16:15, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Dart с энной попытки втаскивается через Flutter, и, похоже, в этот раз получается.
    Ruby хотели затащить - вышло через Rails (сейчас уже сходит на нет, но проекты, на нем написанные, поддерживать еще долго).
    C# - это у кого не вышло, у Microsoft? Да весь виндовый ентерпрайз на нем. В unix-мире - да, не вышло. Хотя язык сам по себе неплох, но инфраструктура - гхм.
     
     
  • 7.112, Im banana man (?), 16:37, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Dart с энной попытки втаскивается через Flutter, и, похоже, в этот раз
    > получается.
    > Ruby хотели затащить - вышло через Rails (сейчас уже сходит на нет,
    > но проекты, на нем написанные, поддерживать еще долго).
    > C# - это у кого не вышло, у Microsoft? Да весь виндовый
    > ентерпрайз на нем. В unix-мире - да, не вышло. Хотя язык
    > сам по себе неплох, но инфраструктура - гхм.

    То есть язык не прижился, они его через Ж хотят протащить. Ну ок.
    C# - да, может и используется, только я со своей колокольни вижу бек-ендеров на Java/Kotlin, а C# давно не видел. Видимо не обитаю в тех местах
    Ruby - туда же. Rails нет, не помог. В 2010-2012-м Ruby пиарили, но невзашел.

     
  • 5.28, Аноним (28), 15:07, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Golang на поверку оказался не так удобен/быстр/приятен/всемогущ

    Да, но Rust опупенно [sarcasm]приятен[/sarcasm]!

     
     
  • 6.40, Аноним (34), 16:12, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У Rust есть шероховатости, связанные с его гарантиями (война с лайфтаймами поначалу и т.д.). Но когда побеждаешь все это и начинаешь понимать смысл концепций языка, Rust очень приятен.
     
  • 5.42, Аноним (41), 16:20, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Golang хорош тем, что на нем может писать любой джун. Банальная императивщина уровня школьного паскаля с гринтредами на уровне языка, изучается за пару дней. Для сложных задач сразу столкнешься с ограничениями, но большинству надо клепать банальные микросервисы.

    Для Rust-а же у большинства не хватит мозгов, чтобы его сходу понять, надо иметь опыт и в современных плюсах со смартпоинтерами, и в функциональщине а-ля Haskell. Порог входа с Go несравним вообще. Это серьезный язык для серьезных проектов.

     
     
  • 6.43, го (?), 17:03, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Для сложных задач сразу столкнешься с ограничениями

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

     
     
  • 7.45, Аноним (45), 17:07, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Проблема не в сборке мусора как таковой, а в gc pause.
     
     
  • 8.94, Брат Анон (?), 09:09, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    100 микросекунд -- с каких пор это критично ... текст свёрнут, показать
     
     
  • 9.103, Аноним (100), 12:04, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    https blog discordapp com why-discord-is-switching-from-go-to-rust-a190bbca2b1... текст свёрнут, показать
     
     
  • 10.120, leap42 (ok), 05:31, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Go сейчас - ТОП-1 язык для ключевых компонентов высоконагруженных сервисов Диск... текст свёрнут, показать
     
  • 10.127, Брат Анон (?), 09:03, 25/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    100 микросекунд -- может быть критично только в ОЧЕНЬ узкоспециализированных слу... большой текст свёрнут, показать
     
  • 7.50, Аноним (34), 17:19, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Помимо GC еще есть проблема в недостаточной (по крайней мере пока что) выразительности языка. И да, я про те же набившие оскомину дженерики. Но это действительно проблема. Строгая статическая типизация без дженериков приводит к бойлерплейту, слабая стическая типизация (как в C) приводит к обобщенному коду через опасные хаки (void*). Хорошие дженерики необходимы строго и статически типизрованным языкам, если мы хотим уменьшить вес динамически типизрованных языков.
     
     
  • 8.65, Аноним (45), 18:26, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На дженерики уже не только дизайн, но и патчи есть, так что тут упрекать уже сло... текст свёрнут, показать
     
     
  • 9.68, Аноним (34), 18:33, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так и здорово в таком случае Рад за Go, давно нужно было этот момент пофикси... текст свёрнут, показать
     
     
  • 10.95, Брат Анон (?), 09:11, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даже когда с Go 2 0 дженерики будут официально -- лично мне они не нужны Я бы б... текст свёрнут, показать
     
     
  • 11.104, Аноним (100), 12:11, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще интересно, что гоферы так часто говорят Разве так не получается куча код... текст свёрнут, показать
     
     
  • 12.105, leap42 (ok), 12:26, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я другой гофер, но с тем анонимом согласен Так вот, представьте себе такой unix... большой текст свёрнут, показать
     
     
  • 13.108, Аноним (100), 12:46, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, мне пока не очень понятно, надо попробовать Так-то Rust тоже совсем не типи... текст свёрнут, показать
     
  • 13.121, Анонимус2 (?), 19:52, 19/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в ls очень даже есть что обобщать - сортировку по разным типам, но в go с этим б... текст свёрнут, показать
     
     
  • 14.122, leap42 (ok), 02:45, 20/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    вы или не программист или никогда ничего не сортировали на Go даже hello worldы... текст свёрнут, показать
     
  • 12.126, Брат Анон (?), 08:57, 25/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Матчасть не знаешь анон, а туда же Есть такая штука, как кодогенерация в Го И ... текст свёрнут, показать
     
  • 6.88, leap42 (ok), 03:19, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Для Rust-а же у большинства не хватит мозгов, чтобы его сходу понять, надо иметь опыт и в современных плюсах со смартпоинтерами, и в функциональщине а-ля Haskell. Порог входа с Go несравним вообще. Это серьезный язык для серьезных проектов.

    Аноним ничего не перепутал? Или "илитисты" какие покусали?

    Серьезные проекты на Go: Docker, Drone, etcd, consul, terraform, Cockroachdb, k8s

    Серьезные проекты на Rust: ... (фреймворки и внутренние проекты считать не будем)

    И Rust по-моему на 3 года старше Go (ну по крайней мере аноним за это топил в соседней ветке)

     
     
  • 7.90, Lex (??), 06:53, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ...и это вы ещё до PHP не дошли :)

     
  • 7.98, имя (ok), 10:30, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И Rust по-моему на 3 года старше Go (ну по крайней мере
    > аноним за это топил в соседней ветке)

    Rust 1.0 вышел только в 2015, таким образом пригодный для использования, а не экспериментов Rust появился гораздо позже Go (какой там год был, 2009?)

     
     
  • 8.102, leap42 (ok), 11:54, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    это был чисто формальный выпуск 1 0, менеджмент мозилы был уже очень недоволен ... большой текст свёрнут, показать
     
     
  • 9.106, Аноним (100), 12:29, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть разные подходы Есть смелые языки, как Rust, которые готовы ломать устоявши... большой текст свёрнут, показать
     
  • 4.80, Аноним (79), 23:20, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Голанг вот не особо зашёл, для себя преимуществ перед питоном (с си и цитоном, угу) не вижу. А тут вроде мощный выразительный язык, уже интересно для наколенных поделок всяких.

    Вот Python для наколенных поделок и есть самое то.

     
  • 2.19, nonamenogame (?), 14:11, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://www.amazon.com/BEGINNING-RUST-NOVICE-PROFESSIONAL/dp/1484247221
    П.С книгу можно легко найти в сети:)
     
  • 2.23, КО (?), 14:34, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такой взрослый, а в нете искать не умеешь...
     
     
  • 3.26, Аноним (10), 14:54, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос только в мотивации.
     
     
  • 4.57, Аноним (56), 17:51, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Три вакансии по России вот и вся мотивация
     
     
  • 5.64, Аноним (34), 18:22, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    На самом деле во всем мире на сегодня расклад таков, что проще притащить Rust в проект на своей текущей работе, чем ждать вакансий. И таким образом его сейчас юзают гораздо активнее, чем оно выглядит на сайтах с вакансиями.
     
  • 5.66, Аноним (45), 18:28, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    История с коронавирусом показывает, что программист можно прекрасно работать удаленно, и от этого, в отличие от коронавируса, никто не умер.

    Так что какая разница где?

     
     
  • 6.91, Lex (??), 07:07, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Где пруфы, что никто не умер Разница в законодательстве и проч Нынешний интер... большой текст свёрнут, показать
     
     
  • 7.107, Аноним (100), 12:36, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > да и размер хеллоуворда 200+КБ для оптимизированной версии

    Rust по умолчанию оптимизирует по производительности - если стоит задача собирать под хлебушек, нужно иначе настраивать сборку. Примеры вещей, которые можно сделать:

    https://github.com/johnthagen/min-sized-rust

    > господа выкинули "супер-крутой аллокатор"

    Да, jemalloc выкинули, теперь по умолчаню юзается системный аллокатор. Ны вы все равно можете настроить себе тот, который вам больше нравится.

     
     
  • 8.123, Lex (??), 10:05, 20/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я для интереса пробовал целую кучу советов из тырнетов именно для ужимания опти... большой текст свёрнут, показать
     
  • 7.113, Аноним84701 (ok), 17:54, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > да и размер хеллоуворда 200+КБ для оптимизированной версии - это совсем не то, что ожидаешь от "очень безопасного низкоуровнего языка с нулевым рантаймом и практически безграничными

    Стандартный, стрипнутый, сишный -- в бубунте тянет на 750KB.
    А так -- все хорошо, прекрасная маркиза.

     
  • 7.114, Аноним (41), 19:54, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Где пруфы, что никто не умер ?

    Доказать отсутствие легко приведением единственного контрпримера. О таковых информации нет.

    > Разница в законодательстве и проч.

    Это все кажется страшным для тех, кто никогда этого не делал.
    ИП и валютный контроль - это совсем не страшно.

     
  • 2.29, Wilem (?), 15:21, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Официальная книжка на сайте. Более глубокое изучение - книжка под названием Rustonomicon - там кишки разжёвываются.

    И просто к слову, Qt - читается «кьют», то есть «милашка».

     
     
  • 3.81, Аноним (79), 23:26, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Поручик на балу Ростовой:
    - Наташа, а Вас когда-нибудь били веслом по п...?
    - Нет, а что?
    - Да так, просто к слову.
     
     
  • 4.124, Аноним (124), 22:00, 23/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почему именно веслом?
    Поручик был байдарочником?
     
  • 2.38, Аноним (34), 16:02, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Советую посмотреть вот этот курс параллельно с чтением материалов с официального сайта (Rust Book и все прочее):

    https://www.youtube.com/watch?v=Oy_VYovfWyo&list=PLlb7e2G7aSpTfhiECYNI2EZ1uAlu

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

    Можете еще глянуть на книгу Programming Rust: Fast, Safe Systems Development  

     
  • 2.47, го (?), 17:12, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Jim Blandy "Why Rust?". В книге меньше ста страниц. Описывает преимущества раста специально для сишников.
     
  • 2.62, Коломойский (?), 18:12, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    можно начать отсюда https://www.rust-lang.org/ru/learn
     
  • 2.99, Проходил мимо (?), 10:57, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Очень рекомендую бумажную книгу https://dmkpress.com/catalog/computer/programming/978-5-97060-236-2/
     

  • 1.27, Аноним (27), 15:05, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Атомарность - обновления применяются по возможности автоматически.

    Как связаны атомарность и автоматическая установка?

     
     
  • 2.30, Wilem (?), 15:22, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тот же вопрос мучает.
     
  • 2.32, Аноним (-), 15:28, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В случае атомарных обновлений автообновления включать относительно безопасно. Если что-то пойдет не так, обновление просто не завершится. При неатомарных обновлениях можно получить неконсистентное состояние системы, когда где-то на середине распаковки пакетов произошел фейл. Потому в при неатомарных обновления лучше производить обновления вручную, чтобы каким-то неосторожным действием не прервать обновление (которое в случае автообновлений будет происходить незаметно в фоне).
     
  • 2.48, Аноним84701 (ok), 17:15, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >> Атомарность - обновления применяются по возможности автоматически.
    > Как связаны атомарность и автоматическая установка?

    Неверным переводом:
    > Atomic - updates are done atomically if possible

     

  • 1.33, Аноним (-), 15:31, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И скачиваются пакеты по https или как всегда?
     
     
  • 2.51, Аноним84701 (ok), 17:21, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> верификация источника по цифровой подписи и контроль целостности
    >> Связанная с верификацией функциональность pkgar может быть доступна без фактического сохранения архива пакета, манипулируя только заголовочной частью
    > И скачиваются пакеты по https или как всегда?

    Интересно, доступ к флешкам/внешним носителям у Свидетелей Всемирного HTTPS-ца тоже через жо^W <эт-самое>? o_O

     
  • 2.76, Аноним (77), 21:47, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вам шашки или ехать? Если боитесь той сети, в которой находитесь - прокиньте трафик через шифрованное соединение самостоятельно, в чём проблема?
     

  • 1.44, Аноним (44), 17:05, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Если go - примитивный, то почему до сих пор нет транспайлера go-to-rust?
    Для миграции на rust было бы удобно, заодно и библиотек прибавилось бы.
     
     
  • 2.46, Аноним (45), 17:09, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, не получится автоматически транспайлить с языка с gc в язык без gc.
    Во-вторых, идиоматические отличия слишком велики.
     
     
  • 3.49, го (?), 17:17, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Во-первых, не получится автоматически транспайлить с языка с gc в язык без gc.

    nim смог https://nim-lang.org/docs/nimc.html

     
     
  • 4.59, Аноним (34), 17:59, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Nim, как я понимаю, это делает таким образом, что GC просто вставляется в результирующий исходный код на C. К тому же сомневаюсь, что с результатом трансляции Nim на C можно работать как исходниками.

    Аноним выше не совсем корректно сказал. Не получится транспайлить из языка с динамической типизацией в идиоматический Rust. В общем-то, возможно, можно как-то отрулиться через умные указатели, но если в исходниках на Go были, например, циклические ссылки, это чревато утечками памяти (что тоже можно аккуратно обойти, но, думаю, не всегда). Другой подход - поступать как с Nim и вставлять в результат трансляции в Rust код GC, но бенефит от такого переката сомнительный.

     
     
  • 5.60, Аноним (34), 18:02, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > с динамической типизацией

    Извиняюсь, думал о другом и опечатался. Из языка с GC.

     
  • 5.73, Аноним (45), 20:14, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если таскание с собой рантайма считать транспайлингом, это тогда и пхп можно
     
  • 3.58, Аноним (56), 17:53, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых, не получится автоматически транспайлить с языка с gc в язык без gc.

    Про умные указатели слышал?

     
     
  • 4.72, Аноним (45), 20:11, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Про циклические зависимости слышал?
     
  • 4.92, Lex (??), 07:11, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну так пусть сами себя и транспилят, раз уж такие умные
     
  • 2.55, proninyaroslav (ok), 17:30, 16/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что выйдет в итоге? Обмазанный толстыми указателями код вместо растовых дженериков (так как в го их нет) с множеством аллокаций в куче (как минимум из-за vtable), причём не забываем что по причине отсутствия дженериков местами в го любят использовать рефлексию. Сомнительная эфективность даже в сравнении с unsafe-кодом, конвертированным из c/c++
     
     
  • 3.97, Брат Анон (?), 09:18, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >  Обмазанный толстыми указателями код вместо растовых дженериков (так как в го их нет)

    Щито?! Очередной диванный аналитег))

    > по причине отсутствия дженериков местами в го любят использовать рефлексию.

    Рука-лицо. иди читай пропозал Го 2.0

    >Сомнительная эфективность даже в сравнении с unsafe-кодом

    ))) Пишется "эффективность", дефектный ты наш. Ансейф код, уж извини уважаемый анон -- в гошечке на уровне лучших образцов Си. Только за ансейф код в Го -- надо пальцы ломать молотками.

     
     
  • 4.109, Ordu (ok), 13:20, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>  Обмазанный толстыми указателями код вместо растовых дженериков (так как в го их нет)
    > Щито?!

    Какое слово тебе непонятно?

    "обмазанный"? "код"? "дженерик"? "толстый указатель"?

    Предположу, что последнее, тогда вперёд читать до просветления гугл по запросу fat pointer. Вкратце же это выглядит так: указатель, который содержит только адрес объекта -- это "тонкий указатель", а если в этом указателе помимо адреса ещё и информация о типе, бит для сборщика мусора, и прочие свистоперделки, то это уже жирный указатель.

     
     
  • 5.125, Брат Анон (?), 08:55, 25/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мне всё непонятно. С каких пор в Го нет указателей, с каких пор указатели в Го "обмазаны", с каких пор в Го появились "толстые" (а значит и "тонкие") указатели?
    И с каких пор в Го 2.0 решили выпилить дженерики?
     
     
  • 6.128, Ordu (ok), 09:17, 25/03/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > с каких пор в Го появились "толстые" (а значит и "тонкие") указатели?

    Ой, я не знаю насчёт тонких, а толстые там с тех пор, как в Го запилили gc и динамическую типизацию.

     
     
  • 7.129, Брат Анон (?), 12:29, 14/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> с каких пор в Го появились "толстые" (а значит и "тонкие") указатели?
    > Ой, я не знаю насчёт тонких, а толстые там с тех пор,
    > как в Го запилили gc и динамическую типизацию.

    Не существует ни толстых, ни тонких указателей. Существуют просто указатели.
    В го нет ДИНАМИЧЕСКОЙ типизации.
    GC никак не влияет на размер указателей. Это перпендикулярное и круглое.

     

  • 1.82, Deanon (?), 23:56, 16/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто реально пользуется сабжом? Для чего она, или это так очередной академичекий проект...
     
     
  • 2.89, Аноним (89), 04:01, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это сразу понятно по фразам: "написанной с использованием языка Rust", "написан на языке Rust"...
     
  • 2.110, Ordu (ok), 13:21, 17/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной академический проект.
     

  • 1.83, Аноним (83), 00:39, 17/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ура, ад зависимостей, который страшнее ада dll теперь и там.
     
  • 1.115, deeaitch (ok), 02:35, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Представьте мне пожалуйста нормальную инфраструктуру и IDE для Rust.
     
  • 1.116, JL2001 (ok), 10:03, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    //оффтоп

    nixpkg рулит!

     
  • 1.117, Аноним (117), 18:17, 18/03/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как там насчет деревьев и графов, и чтобы безо всяких плясок с бубнами и через одно место? Или это все еще слишком сложные структуры данных для Rust?!
     
     
  • 2.119, анон (?), 22:22, 18/03/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а что сложного? если через unsafe делать - это несложно вроде?
    ещё есть реализация в std: https://doc.rust-lang.org/std/collections/struct.BTreeMap.html
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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