Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/101t/embedding_service.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Run checks:
make check - Commit your changes:
git commit -m "feat: add your feature" - Push to your fork:
git push origin feature/your-feature-name - Create a Pull Request
- Rust 1.75 or later
- Docker (optional, for containerized development)
# Debug build
make build
# Release build
make release
# Run locally
make runmake testWe use standard Rust formatting and linting:
# Format code
make fmt
# Run linter
make lint
# Run all checks
make checkWe follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add support for new embedding model
fix: resolve memory leak in batch processing
docs: update API documentation
- Keep PRs focused - One feature or fix per PR
- Write tests - Add tests for new functionality
- Update documentation - Update README if needed
- Pass CI checks - Ensure all checks pass before requesting review
When reporting issues, please include:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Rust version, etc.)
- Relevant logs or error messages
To add support for a new embedding model:
- Check if the model is supported by fastembed-rs
- Add the model mapping in
src/main.rs - Update the README with model information
- Add tests for the new model
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the code, not the person
- Help others learn and grow
By contributing, you agree that your contributions will be licensed under the MIT License.