Что такое just?
just — это удобный исполнитель команд, написанный на Rust Кейси Родармором. Он сохраняет и запускает специфичные для проекта команды, называемые рецептами, которые хранятся в файле с именем justfile с синтаксисом, вдохновлённым make. В отличие от make, just не является системой сборки: рецепты — это просто команды для выполнения, поэтому здесь нет фиктивных целей (phony) и зависимости от времени изменения файлов. Набрав более 25 тысяч звёзд на GitHub, он стал предпочтительным инструментом запуска задач для современных проектов.
.PHONY повсюду? Надоели ошибки табуляции против пробелов и неявные правила сборки, которые срабатывают, когда вы меньше всего этого ожидаете? just сохраняет привычное ощущение рецептов Makefile, но избавляется от груза системы сборки — каждый рецепт это просто команда.
⚡ Ключевые возможности just
📝 Синтаксис в стиле make
Пишите рецепты в знакомом, читаемом justfile. Если вы знаете Makefile, вы уже знаете большую часть just — без причуд.
🧩 Параметры рецептов
Рецепты принимают аргументы и имеют значения по умолчанию, поэтому один рецепт может адаптироваться ко многим вызовам без дополнительных скриптов.
🐚 Любая оболочка или язык
Пишите рецепты на sh, bash, Python, Node или чём-либо ещё с помощью строки shebang. just запускает каждый рецепт с выбранным вами интерпретатором.
📋 Список и обнаружение
Запустите just --list, чтобы увидеть каждый рецепт с его комментарием-документацией. Новички могут мгновенно изучить задачи проекта.
🔐 .env и переменные
Загружайте файлы окружения, определяйте переменные и подставляйте их в рецепты. Держите конфигурацию в порядке и вне ваших команд.
🌍 Кроссплатформенность
Единый статический бинарный файл, который одинаково работает на Linux, macOS и Windows — без среды выполнения, без интерпретатора, без причуд.
🏆 Преимущества для производительности
- Экономия времени: Запускайте любую задачу проекта с помощью
just <recipe>вместо запоминания длинных команд - Самодокументирование:
just --listпоказывает каждую задачу и её описание - Единообразие: Вся команда запускает одни и те же команды одинаково
- Без причуд сборки: Рецепты — это команды, а не цели — никаких сюрпризов с устаревшими метками времени
- Переносимость: Один justfile работает на Linux, macOS и Windows
apt upgrade всегда держит вас на последней версии.
📦 Установка из deb.griffo.io
Шаг 1: Добавить репозиторий
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Есть вечно бесплатное зеркало. deb-free.griffo.io раздаёт пакеты бесплатно навсегда — без аккаунта, без подписки, не более 2 месяцев позади upstream, исправления безопасности сразу. Сейчас там cliamp, Ghostty, lazydocker, Oh My Posh и Zed; just среди них нет, поэтому репозиторий выше — единственный способ установить его сегодня; попросите, и его можно добавить.
Шаг 2: Установить just
# Install latest just
sudo apt install just
# Проверить установку
just --version# Install latest just
apt install just
# Проверить установку
just --versionШаг 3: Создать ваш первый justfile
# Create a justfile in your project
cat > justfile <<'EOF'
# Build the project
build:
cargo build --release
# Run the tests
test:
cargo test
# Say hello to someone
hello name='world':
echo "Hello, {{name}}!"
EOF
# List available recipes
just --list
# Run a recipe
just build
just hello just🎯 Примеры базового использования
Запуск рецептов:
# Run the first recipe in the justfile (the default)
just
# Run a specific recipe
just test
# Pass an argument to a recipe
just hello Dario
# List every recipe with its documentation
just --listРабота с justfile:
# Show the resolved value of a variable
just --evaluate
# Print a recipe without running it
just --show build
# Use a justfile in another directory
just --justfile ~/project/justfile --working-directory ~/project build
# Choose a recipe interactively (needs a chooser like fzf)
just --chooseАвтодополнение оболочки:
# Completions for bash, fish and zsh are installed with the package.
# Generate them manually for any shell if you need to:
just --completions bash
just --completions zsh
just --completions fish🚀 Почему выбрать deb.griffo.io?
- Официальный Ubuntu: Доступен, но часто устаревшие версии
- Cargo Install: Требует цепочки инструментов Rust и компиляции
- Скрипт установки: Ручные обновления без управления пакетами
- deb.griffo.io: Последняя версия с автоматическими обновлениями
- ✅ Последние возможности: Получайте новейшие атрибуты и функции рецептов
- ✅ Без компиляции Rust: Готовые бинарные файлы, цепочка инструментов не нужна
- ✅ Автоматические обновления: Пакеты обновляются в течение нескольких часов после выхода апстрима
- ✅ Полный пакет: Включает автодополнение оболочки и man-страницу
- ✅ Мультидистрибутив: Работает на Jammy и Noble
- ✅ Простое обслуживание: Стандартные команды apt для обновлений
📦 Репозиторий сборки пакетов
Пакеты Ubuntu автоматически собираются и поддерживаются в этом репозитории GitHub:
- 🤖 just-debian - Latest release builds
🔗 Связанные пакеты
Также доступно из deb.griffo.io:
- fzf Fuzzy Finder - Обеспечивает работу
just --chooseдля интерактивного выбора рецептов - Jujutsu - Современная, совместимая с Git система контроля версий
- Helix Editor - Постмодернистский модальный редактор для редактирования ваших justfile