Добро пожаловать в этот монорепозиторий. Все папки в этом репозитории представляют собой отдельные проекты 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
перемещается весь код и артефакты, которые больше не нужны.
Таким образом, ничего не «теряется», и если вам нужно использовать часть удаленного кода, вы можете найти его там.
Также, если вы хотите внести изменения в этот код и поддерживать его самостоятельно, сообщите нам об этом.