Samoyed
A modern, fast, and secure Git hooks manager written in Rust. Samoyed is inspired by Husky with improved performance, better error handling, and enhanced security features.
You don’t have to fuss with that pesky package.json file in your projects anymore! 🤌

Test Coverage
Features
- 🚀 Fast: Built with Rust for optimal performance
- 🔒 Secure: Comprehensive path validation and security checks
- 🛡️ Robust: Detailed error handling with actionable suggestions
- 🧪 Well-tested: 100% test coverage with comprehensive integration tests
- 🌍 Cross-platform: Supports Linux, macOS, and Windows
- 📦 Zero dependencies: No runtime dependencies beyond Git
Installation
Quick Start
Initialize Git hooks in your repository:
This will:
- Configure Git to use
.samoyed/_as the hooks directory - Create the hooks directory structure
- Install hook files that delegate to the
samoyed-hookrunner
Usage
Basic Commands
# Initialize hooks (one-time setup)
# Install hooks with custom directory
Environment Variables
SAMOYED=0- Skip hook installation entirelySAMOYED_DEBUG=1- Enable debug logging
Architecture
Samoyed uses a dual-binary architecture:
samoyed: CLI interface for initialization and managementsamoyed-hook: Lightweight hook runner executed by Git
This separation ensures minimal overhead during Git operations while providing rich functionality for setup and management.
Development
Prerequisites
- Rust 1.85+ (Rust 2024 edition)
- Git
Building
# Build debug version
# Build release version
# Run tests
# Run benchmarks
Testing
The project uses comprehensive testing with dependency injection:
# Run all tests
# Run specific test categories
# Run platform-specific tests
Code Coverage
Generate coverage reports:
Contributing
- Let's discuss
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Inspired by Husky
- Built with 🤟 🫡 in Rust