██████╗ ███████╗██████╗ ██████╗ ██████╗ ██╗ ██╗███╗ ███╗██████╗
██╔══██╗██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗██║ ██║████╗ ████║██╔══██╗
██████╔╝█████╗ ██████╔╝██║ ██║ ██║ ██║██║ ██║██╔████╔██║██████╔╝
██╔══██╗██╔══╝ ██╔═══╝ ██║ ██║ ██║ ██║██║ ██║██║╚██╔╝██║██╔═══╝
██║ ██║███████╗██║ ╚██████╔╝ ██████╔╝╚██████╔╝██║ ╚═╝ ██║██║
╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
A powerful Rust-based tool for analyzing and dumping source code from project directories. This tool automatically detects project technologies, generates directory trees, and creates comprehensive source code dumps.
-
🔍 Automatic Technology Detection
- Supports multiple programming languages and frameworks
- Smart detection of project structure and dependencies
- Extensible technology indicators
-
📁 Directory Tree Generation
- Beautiful ASCII tree visualization
- Intelligent exclusion of unnecessary directories
- Customizable tree depth and format
-
🌐 Multilingual Support
- English and Vietnamese interfaces
- Easy to add more languages
- Consistent user experience across languages
-
🛠️ Smart File Handling
- Automatic file size limits
- Intelligent file type filtering
- Proper handling of binary and large files
-
📊 Comprehensive Output
- Detailed project structure
- Complete source code dump
- Statistics and summaries
- Rust 1.85.0 or higher
- Cargo (Rust's package manager)
# Clone the repository
git clone https://github.com/haiphamcoder/repo-dump.git
cd repo-dump
# Build the project
cargo build --release
# The binary will be available at target/release/repo-dump
# Run with default settings (interactive mode)
cargo run
# Specify project path directly
cargo run -- --path /path/to/project
# Using the built binary
./target/release/repo-dump-rs --path /path/to/project
--path
,-p
: Specify the project path to analyze--help
: Show help message--version
: Show version information
- Select language (en/vi)
- Enter project path (or press Enter to use current directory)
- Wait for analysis to complete
- Find the output in
source_dump.txt
main
: Stable branch, contains production-ready codefeature-dev
: Integration branch for features- Feature branches:
feature/*
for specific features
-
Create a new branch from
feature-dev
:git checkout feature-dev git pull git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "feat: add new feature"
-
Push and create a Pull Request:
git push origin feature/your-feature-name
-
After review and approval, your PR will be merged into
feature-dev
-
When ready for release,
feature-dev
will be merged intomain
We follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat
: New featurefix
: Bug fixdocs
: Documentation changesstyle
: Code style changes (formatting, etc)refactor
: Code refactoringtest
: Adding/updating testschore
: Maintenance tasks
Example:
feat(tech-detection): add support for Rust projects
- Add Rust-specific file patterns
- Implement Rust project detection
- Add tests for Rust detection
Closes #123
- Use the PR template
- Link related issues
- Keep PRs focused and small
- Update documentation
- Add tests if needed
- Follow the commit message guidelines
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by various code analysis tools
- Built with Rust's excellent ecosystem
- Thanks to all contributors
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers