Expand description
aube’s command layer as a library.
The aube / aubr / aubx binaries are thin wrappers over
cli_main; everything else lives here so the command layer can be
embedded by other tools — e.g. constructing
embed::InstallOptions and calling embed::install in-process instead
of shelling out to the CLI. Embedding hosts should use embed, which is
the stable facade over the lower-level commands modules. cli_args
and cli_main remain public for hosts that wrap aube’s complete CLI.
The library makes no global-allocator choice — the mimalloc opt-in
lives in src/main.rs so embedders keep control of their own
allocator.
Modules§
- cli_
args - Shared
usage_rs::Argsgroups flattened into per-command argument structs. - command_
effects - What each aube command does to the world.
- commands
- embed
- Stable in-process API for hosts that embed aube’s package manager.
Functions§
- cli_
main - Library entry point. An embedder calls this with its own
&'static Embedder(and optional setting defaults); theaubebinary passes&aube_util::AUBEand no defaults, reproducing standalone behavior. This is the whole embedding API: register-then-run in one call, so a host never has to separately wire identity and defaults. - cli_
main_ with_ defaults cli_mainplus embedder-supplied setting defaults. Thedefaultsare(canonical_setting_name, raw_value)pairs registered at the lowest precedence tier — below every user- and project-level source — for the genuinely user-overridable knobs an embedder wants to re-default. (Embedder-fixed behavior lives onaube_util::Embedderitself, not here.) Standalone aube passes an empty vec, so per-setting built-in defaults apply unchanged.- command
- The root command metadata for the embeddable command layer.
- completion_
app - spec
- The static parser and portable metadata for the embeddable command layer.
- usage_
kdl - usage_
kdl_ for