cargo-autodd 0.1.6

Automatically update dependencies in Cargo.toml
Documentation
# ๐Ÿ“ฆ cargo-autodd

A Cargo subcommand that automatically manages dependencies in your Rust projects.

## ๐Ÿ” Overview

cargo-autodd simplifies Rust dependency management by automatically adding required crates to your Cargo.toml based on `use` statements and `extern crate` declarations in your code. 

![cargo-autodd demo](.github/cargo-autodd_01.gif)

## โœจ Features

- ๐Ÿ”Ž Scans Rust source files for imports
- ๐Ÿค– Automatically detects required dependencies
- โฌ†๏ธ Updates Cargo.toml with the latest stable versions
- ๐Ÿ—‘๏ธ Removes unused dependencies
- ๐Ÿ› ๏ธ Leverages rust-analyzer for better code analysis (when available)
- ๐Ÿงน Removes unused dependencies
- ๐Ÿ“Š Generates dependency usage reports
- ๐Ÿ”’ Checks for security vulnerabilities
- ๐Ÿ› Debug mode for detailed analysis

## ๐Ÿ“ฅ Installation

```bash
cargo install cargo-autodd
```

## โš™๏ธ Requirements

- ๐Ÿฆ€ Rust 1.56.0 or later
- ๐Ÿ“ฆ Cargo
- ๐Ÿ”ง rust-analyzer (optional, but recommended)

## ๐Ÿš€ Usage

### Automatic Dependency Management

```bash
# Analyze and update dependencies in the current project
cargo autodd

# Run with debug mode for detailed analysis
cargo autodd --debug
# or
cargo autodd -d
```

### Update Dependencies

```bash
# Check and update all dependencies to their latest versions
cargo autodd update
```

### Generate Reports

```bash
# Generate a detailed dependency usage report
cargo autodd report
```

### Security Check

```bash
# Check for known security vulnerabilities
cargo autodd security
```

### Debug Mode

In debug mode, the following detailed information is displayed:

- ๐Ÿ” Path of detected Rust files
- ๐Ÿ“ Content of each line being processed
- ๐Ÿ”Ž Detected `use` statements and base crate names
- ๐Ÿ“ฆ Details of nested imports
- ๐Ÿ”ง Detection of `extern crate` statements
- ๐Ÿ“Š Analysis results of each file
- ๐Ÿ“‹ Final list of crate references

## ๐Ÿ”„ How It Works

1. ๐Ÿ“ Analyzes your Rust source files
2. ๐Ÿ” Detects import statements and external crate declarations
3. โšก Updates Cargo.toml with required dependencies
4. โœ… Verifies changes with `cargo check`
5. ๐Ÿ”’ Checks for security vulnerabilities using the RustSec Advisory Database
6. ๐Ÿ“Š Generates detailed reports about dependency usage

## ๐Ÿ‘ฅ Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## ๐Ÿ“œ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ‘ค Author

nwiizo ([@nwiizo](https://x.com/nwiizo))

## ๐ŸŽ‰ Related Projects

- [cargo.nvim]https://github.com/nwiizo/cargo.nvim