Инструменты программиста
12.9K subscribers
1.75K photos
164 videos
4 files
2.18K links
Полезные инструменты для программистов — бесплатные и платные

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Регистрация в перечне РКН: https://tprg.ru/mX0S
Download Telegram
cargo-deny сверяет зависимости с правилами проекта

Сообщения об уязвимостях — только одна причина отклонить зависимость. Если проект разрешает определённые лицензии или источники crates, cargo-deny проверяет соответствие графа зависимостей этим правилам.

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

Это отличается от узкой проверки Cargo.lock по RustSec: здесь вы сначала определяете собственную политику, затем проверяете соответствие ей. Разрешённая лицензия и доверенный источник не означают отсутствия уязвимостей. В README указан минимальный Rust 1.88.0. Авторы отдельно предупреждают: результат cargo-deny не является юридической консультацией.
hey: ограничить число запросов и параллелизм

Если нужно отправить небольшую фиксированную серию запросов к своему HTTP-стенду, у hey для этого есть два отдельных параметра. Один задаёт общий объём, другой — число параллельных исполнителей.

Для локального сервера на порту 8080:

hey -n 12 -c 2 http://127.0.0.1:8080/


Будет отправлено 12 запросов с двумя параллельными workers. В итоговом отчёте можно посмотреть распределение времени ответов и статусы. Общее число запросов не может быть меньше числа workers.

Это сценарий с ограниченным числом запросов, а не расписание с заданным общим темпом, как у Vegeta. У hey есть и ограничитель -q, но он задаёт QPS на каждого worker, а не на весь запуск. Если выбираете режим по длительности -z, значение -n игнорируется.
❤1
dist собирает бинарник, установщик и данные о выпуске

Скомпилированный CLI ещё нужно передать пользователям: подготовить архивы под платформы, установщики и описание артефактов. dist, прежде известный как cargo-dist, связывает эти задачи в процесс распространения бинарников.

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

В полном варианте dist генерирует CI-процесс: по тегу определяет приложения для выпуска, готовит план, собирает артефакты и размещает их. Название cargo-dist сохранилось у пакета и в части адресов документации, но сам README называет инструмент dist. Сначала решите, нужен ли вам полный процесс публикации или только повторяемая упаковка.
Baseline в Gitleaks выделяет новые находки

Первый запуск Gitleaks по старому репозиторию может дать длинный список возможных секретов. Если нужно следить за новыми находками, инструмент умеет использовать прежний отчёт как baseline и исключать уже записанные совпадения из следующего отчёта.

Это удобно после первичного разбора: отдельно хранится перечень известных находок, а CI показывает новые. Baseline не исправляет старые утечки и не доказывает, что их безопасно игнорировать. Он только меняет, какие совпадения попадут в отчёт.

У Gitleaks есть разные области сканирования. Режим git читает патчи истории, dir проверяет файлы и каталоги, stdin — входной поток. Для поиска секрета, удалённого из рабочей копии, важен именно просмотр истории.

При выборе инструмента учтите статус проекта: автор объявил Gitleaks функционально завершённым. Новых возможностей не планирует, будущие релизы — только исправления безопасности.