🦦 Clawless
clawless is a framework for building command-line applications with Rust. Its
goal is to provide high-level building blocks and well-designed conventions so
that users can focus on their applications.
The library exports a few macros that create a command-line application, parse arguments, and then call user-defined functions.
Project Status
Clawless is in a very early prototyping phase and not considered ready for production use. Follow the project and check out the open issues to understand the crate's current limitations.
Usage
First of all, generate a new binary crate using cargo new --bin <name>. Inside
the crate, open src/main.rs and replace the generated contents with the
following snippet:
use clawless;
Go ahead and create the src/commands.rs module, and add the following line to
set up the Clawless application:
app!;
You can now start adding commands to the application by creating submodules in
commands, adding a function, and tagging it as a command.
First, register a new submodule in src/commands.rs:
Create src/commands/command.rs, and then add a struct and a function to the
file:
use Args;
use command;
pub async
You can execute the command by calling your command-line application:
cargo run -- command
License
Licensed under either of
- Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.