A modern, fast, and reliable package manager written in Rust. Distill aims to be a drop-in replacement for Homebrew, bringing improved performance, better error handling, and enhanced security through Rust's safety guarantees.
Distill is an ambitious project to rewrite Homebrew in Rust, focusing on:
- Performance improvements through concurrent operations
- Memory safety and security through Rust's guarantees
- Enhanced error handling and user feedback
- Maintainable and modular codebase
- Backward compatibility with existing Homebrew formulas
- Secure file downloading with progress tracking
- Checksum verification for downloads
- Efficient caching system
- Robust error handling
- Platform-specific operations support
- Git operations for formula management
Currently in development. Installation instructions will be provided once the first stable release is available.
# Basic commands (planned)
distill install <package>
distill update
distill upgrade
distill search <term>
distill info <package>
- Basic project structure
- Download module with progress tracking
- Cache management system
- Basic error handling framework
- Platform detection and support
- Formula parsing and management
- Dependency resolution
- Package installation system
- Update and upgrade functionality
- Package removal
- Parallel downloads and installations
- Advanced caching strategies
- Formula creation tools
- Plugin system
- Development tools for formula creators
- Official formula repository
- Community contribution tools
- Documentation system
- Integration with existing Homebrew formulas
- CI/CD pipeline for formula testing
Contributions are welcome! Please feel free to submit pull requests. For major changes, please open an issue first to discuss what you would like to change.
- Clone the repository:
git clone https://github.com/Soroushsrd/Distill.git
cd Distill
- Build the project:
cargo build
- Run tests:
cargo test
- Safety First: Leverage Rust's safety features for secure package management
- Performance: Optimize for speed while maintaining reliability
- User Experience: Clear error messages and progress indicators
- Modularity: Well-structured code for easy maintenance and contributions
- Compatibility: Maintain compatibility with existing Homebrew formulas
- Secure HTTPS downloads
- Progress tracking with ETA
- Integrity verification
- Caching system
- Interrupt handling
- macOS support (experimental)
- Linux support (planned)
- Windows support (primary)
- 50% faster package installation than Homebrew
- Reduced memory usage
- Efficient cache management
- Quick dependency resolution
- Fast formula updates
Rust was chosen for this project because:
- Memory safety guarantees
- High performance
- Excellent concurrency support
- Strong type system
- Growing ecosystem
- Cross-platform support
Feel free to:
- Open an issue for bugs or feature requests
- Submit pull requests
- Join the discussion in our community channels (coming soon)
- Homebrew team for their pioneering work
- Rust community for tools and support
- All contributors and supporters
Note: This project is under active development. Features and APIs may change significantly between versions.