похож на npm? То есть, ты ставишь какой-нибудь cargo-edit, а он тебе тянет целый tokio рантайм + кучу вспомогательных завимиостей. Это начинает беспокоить
Таков путь.
да
Пакеты как пакеты. Альтернатива?
Главное что бы без leftpad-rs
Имхо решение простое: не использовать такие либы/утилиты. Либо пиздить таких разрабов, смотря что проще.
То есть автор каждой утилиты должен писать собственный парсер аргументов командной строки и хттп-клиент?
Как в С++ сделоть :yoba:
То есть апт-пакет, который за собой тянет 400 мб мусора от gcc до readline?
Тут надо смотреть. Это как тянуть весь Qt, но использовать только его строки. То есть когда нужен парсер - спору нет, бери что есть. Однако, если ты и половины его возможностей не пользуешь, может лучении взять парсер попроще и поменьше?
А может проще впилить в карго глобальный кэш?
Не передергивай. Если зависимость оправдана - нет претензий.
Я думаю, что главный источник неоправданных зависимостей - это default features.
И как он поможет, когда твой бинарь увеличивается в 2 раза из-за депенденси, которые висят мертвым грузом?
Если фичи хотя бы предусмотренны - это замечательно.
Создавать разные подэкосистемы под разные потребности. Например, в ржавом игрострое сейчас есть wgpu/winit стек, который обобщенный, гибкий, и состоит из кучи кода и зависимостей, и есть miniquad стек, который не такой технически навороченный и гибкий, зато рекурсивно тянет на порядки меньше кода и легче хакается
В дебаге мне в общем-то неважно: все равно несравнимо меньше по сравнению с target. В релизе все ненужное оптимизатор выкинет.
А включение lto поможет?
У меня конечно кресты головного мозга, но я хочу видеть в расте нормальные шареные библиотеки, а не линковать всё в статике. Тут оптимизатор ничего не выкинет.
Чтобы длл-ки хорошо работали, надо не делать мономорфизацию (дженерик код динамически фиг слинкуешь). А если не делать мономорфизацию, то уже возможно и длл-ки не нужны :)
Дженерики отдельная песня, у меня к ним вообще много вопросов, но это из-за моего недопонимания всё же)
Недавно линус торвальдс высказывался, что шареные библиотеки зло и нужно юзать когда возможно статику, поскольку память дешевая.
Code bloat go brr. Но шареные библиотеки всё равно зло. Проблема в том, что не всегда понятно, какое зло меньше.
А у меня сложилось впечатление, что неймспейс пакетов замусорен. Любой Вася пупкин может сделать (и делает) пакет с именем типа "oracle".
вот я считаю, что это было бы классно
Особенно забавно, когда находишь что-то типо websocket и оно оказывается депрекейтнуто 🤦♂️
Обсуждают сегодня