Rust CLI Animator is a command-line tool for creating, editing, and playing ASCII animations directly in your terminal. This project demonstrates how to build an interactive CLI application in Rust, featuring a user-friendly interface for managing animations.
- Create and edit ASCII art animations
- Play animations with adjustable speed
- Add, edit, delete, and reorder frames
- Save animations to files and load them later
- Interactive frame editor with line-by-line editing
- Simple and intuitive menu-driven interface
To run this project, you need to have Rust and Cargo installed on your system. If you haven't installed Rust yet, you can do so by following the instructions at https://www.rust-lang.org/tools/install.
-
Clone this repository:
git clone https://github.com/yourusername/rust-cli-animator.git cd rust-cli-animator
-
Build the project:
cargo build --release
-
Run the animator:
cargo run --release
When you run the animator, you'll be presented with a main menu offering the following options:
- Play animation
- Edit current frame
- Add new frame
- Delete current frame
- Reorder frames
- Adjust speed
- Save animation
- Load animation q. Quit
Use the number keys to select an option, or 'q' to quit the program.
- Start by adding a new frame (option 3).
- Use the frame editor to create your ASCII art.
- Add more frames as needed.
- Use the play animation option (1) to preview your work.
In the frame editor:
- Use 'a' to add a new line
- Use 'e <line_number>' to edit a specific line
- Use 'd <line_number>' to delete a line
- Use 'q' to finish editing and return to the main menu
- Use option 7 to save your animation to a file.
- Use option 8 to load a previously saved animation.
Contributions to the Rust CLI Animator are welcome! Please feel free to submit pull requests, create issues, or suggest new features.
This project is licensed under the MIT License - see the LICENSE file for details.
- The Rust community for providing excellent documentation and crates.
- The creators and maintainers of the
crossterm
andserde
crates, which are essential to this project.