Добро пожаловать в этот монорепозиторий. Все папки в этом репозитории представляют собой отдельные проекты Rust (ящики), которые, вероятно, опубликованы на crates.io. Это и есть рабочее пространство Rust.
Вот журнал изменений для этого монорепозитория или рабочей среды Rust. Это отличное место, чтобы начать знакомиться с тем, что изменилось за последнее время в каждом из проектов в этом рабочем пространстве Rust.
Оглавление:
Ниже приводится общий обзор каждого из ящиков, составляющих это рабочее пространство Rust.
Существуют ящики, которые варьируются от «полного» TUI до «частичного» TUI, а также все, что посередине.
r3bl_tui обеспечивает поддержку необработанного режима «альтернативный экран» и «полноэкранный режим», будучи при этом полностью асинхронным. Примером этого является edi приложения «Full TUI» в контейнере r3bl-cmdr . Вы можете установить и запустить это с помощью следующей команды:
cargo install r3bl-cmdr
edi r3bl_terminal_async дает вам возможность легко создавать свои собственные программы асинхронной оболочки, используя «асинхронную строку чтения и стандартный вывод».
Вот примеры этого:
r3bl_tuify дает вам возможность легко создавать свои собственные программы CLI с блокировкой взаимодействия. Это отличный способ получить пользовательский ввод при блокировке основного потока и использовать необработанный режим, когда основной поток заблокирован. Примером этого приложения является приложение giti в наборе r3bl-cmdr . Вы можете установить и запустить это с помощью следующей команды:
cargo install r3bl-cmdr
gitiЕсть много других базовых ящиков, которые используются для создания этих ящиков верхнего уровня. Вот их краткий список:
r3bl_core содержит множество утилит низкого уровня, которые используются в других ящиках. Сюда входят такие вещи, как декларативные макросы, цвета, стили, поддержка Юникода и т. д. Со временем, если некоторый код создается в контейнере «более высокого уровня» и полезен в других контейнерах, он перемещается в этот контейнер. И это зафиксировано в журнале изменений.
r3bl_test_fixtures содержит множество тестовых приспособлений, которые используются в других ящиках. Сюда входят такие вещи, как макеты для stdio и потоки событий (события ввода, генерируемые при взаимодействии с пользователем).
r3bl_ansi_color — это несколько не связанный с другими ящиками в этом рабочем пространстве. Он предоставляет чистый API, который позволяет вам легко использовать цвета ANSI в ваших терминальных программах. Если вы не хотите использовать более сложные контейнеры и вам просто нужно вывести в терминал немного стилизованного текста, то этот ящик для вас.
Существует даже ящик, который содержит только пользовательские приложения, созданные с использованием этих базовых ящиков. Это крейт r3bl-cmdr , в котором находятся приложения giti и edi (описанные выше). Вы можете установить и запустить это с помощью следующей команды:
cargo install r3bl-cmdrЧтобы узнать, как мы построили этот ящик, ознакомьтесь со следующими ресурсами.
Существует nushell сценарий, который можно использовать для запуска конвейера CI/CD для этой рабочей области и многого другого (только локальные операции). Чтобы получить их список, вы можете просмотреть скрипт nushell в корне этого run . Чтобы получить представление о командах, которые вы можете запускать, попробуйте выполнить следующую команду:
cargo install nu
nu runВы должны увидеть вывод, который выглядит следующим образом:
Usage: run <command> [args]
<command> can be:
all
all-cicd
build
build-full
clean
install-cargo-tools
test
docs
check
check-watch
clippy
clippy-watch
serve-docs
upgrade-deps
rustfmt
help
Например:
nu run all-cicd запустит конвейер CI/CD для этой рабочей области.nu run all чтобы запустить конвейер CI/CD и многое другое (только локальные операции). Каждый контейнер, содержащийся в этой рабочей области, также может иметь собственный сценарий nushell , который также называется run . Это соглашение, которое используется в этой рабочей области. Вы можете запустить сценарий run в каждом ящике, чтобы получить список команд, специфичных для этого ящика.
По мере роста, изменения и развития этого репозитория необходима обрезка. В r3bl-open-core-archive перемещается весь код и артефакты, которые больше не нужны.
Таким образом, ничего не «теряется», и если вам нужно использовать часть удаленного кода, вы можете найти его там.
Также, если вы хотите внести изменения в этот код и поддерживать его самостоятельно, сообщите нам об этом.