Thank you for your interest in contributing! Here are a few guidelines to help you get started.
# Clone the repository
git clone https://github.com/ntech-org/nmcscan.git
cd nmcscan
# Set up environment
cp .env.example .env
# Run tests
cargo test
# Run the scanner in test mode (scans known servers only, safe for development)
cargo run -- --test-mode- Run
cargo fmtbefore committing - Run
cargo clippy -- -D warningsto catch common issues - All tests must pass:
cargo test
| Directory | Purpose |
|---|---|
src/network/ |
Protocol implementations (SLP, RakNet, Login) |
src/services/ |
Background tasks (scheduler, login queue, ASN fetcher) |
src/handlers/ |
HTTP API endpoints (Axum) |
src/models/ |
Domain models and SeaORM entities |
src/repositories/ |
Database access layer |
src/utils/ |
Utilities (exclude list, query parser) |
migration/ |
Database schema migrations |
dashboard/ |
SvelteKit frontend |
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
- Describe what the change does and why
- Include tests for new functionality
- Update documentation if behavior changes
- Keep commits focused and atomic
Please include:
- The version/commit you're running
- Steps to reproduce the issue
- Expected vs actual behavior
- Relevant log output (
RUST_LOG=debug)
By contributing, you agree that your contributions will be licensed under the MIT License.