Steady craft, clear words, and changes in small, well‑fitted pieces.
Thank you for your interest in improving ResoBoost. This project is a cross‑platform Tauri (Rust) + React/TypeScript app for DNS and download benchmarking. Contributions of all shapes are welcome—bug fixes, features, docs, tests, and triage.
- Be respectful and constructive; follow our Code of Conduct.
- For security issues, never open a public issue. See SECURITY.md or email ednoct@proton.me.
- Strive for small, focused pull requests with clear intent and tests where applicable.
- Report bugs → use Issues » New issue » Bug report (template provided).
- Propose features → use Issues » New issue » Feature request.
- Improve docs → README, guides, comments, and in‑app copy are all fair game.
- Refactor/cleanup → pay down tech debt in small, reviewable commits.
- Desktop app via Tauri 2 with a Rust backend
- UI with React + TypeScript + Vite + Tailwind CSS
- DNS benchmarking + per‑resolver download throughput; CSV export
(See README for details and screenshots.)
- Rust (stable)
- Node.js ≥ 18 (16+ may work, but we test with modern LTS)
- bun (or your preferred package manager)
- Platform-specific Tauri dependencies (e.g., Xcode CLT on macOS; MSVC on Windows;
libwebkit2gtkand OpenSSL dev headers on Linux)
# clone and enter the project
git clone https://github.com/ednoct/ResoBoost.git
cd ResoBoost
# install JS deps
bun installbun run tauri devThis starts the React dev server and the Tauri Rust backend.
-
Fork the repo (or create a branch if you have write access).
-
Create a topic branch:
feat/dnssec-reporting,fix/timeout-config, etc. -
Commit style: use Conventional Commits where possible, e.g.,
feat(ui): add per-resolver Mbps chartfix(rust): clamp jitter values to u32docs: clarify server list import
-
Keep commits small and meaningful; squash if needed before review.
-
Open a Pull Request and fill out the PR description (what/why/how, screenshots if UI).
-
Link related issues with
Fixes #123orCloses #123.
- Code builds locally (
bun run buildorbun run tauri build) and the app runs. - Rust code
cargo fmtclean; noclippywarnings for changed lines. - TypeScript passes type‑check for changed areas.
- Added/updated tests (where applicable) and docs.
- UI changes include before/after screenshots or brief video.
- No secrets, tokens, or private data in code or test fixtures.
Tip: If the repo lacks a script you need (e.g.,
typecheck,lint), suggest one in your PR.
Rust
- Format with
cargo fmt. - Lint with
cargo clippy(aim to address warnings; allow exceptions with justification).
TypeScript/React
- Prefer functional components and hooks.
- Keep components focused; extract helpers.
- Use explicit types where helpful; avoid
anyin new code. - Follow project conventions for file/folder structure.
General
- Avoid needless allocations in hot paths; benchmark where performance is a concern.
- Log sparingly and meaningfully; prefer structured, consistent messages.
- Add comments for non‑obvious logic; keep functions small and testable.
Testing is encouraged for core logic:
- Rust: add unit/integration tests under
src-tauriwhere appropriate; consider property tests for parsers. - TypeScript: add unit tests for utility functions and reducers; consider component tests for complex UI.
If testing infrastructure is missing for a given area, propose it in a small enabling PR.
- Update README and in‑app help when behavior changes.
- Add usage examples for new flags, config keys, or pages.
- Keep changelogs in PR descriptions; maintainers will compile release notes.
- Label new issues with area and severity; request a minimal repro if missing.
- Close as duplicate with a link when appropriate; keep conversation friendly.
- Convert misfiled security issues to private channels and remove sensitive details.
Please read SECURITY.md. Report vulnerabilities privately via the repo’s Security tab or email ednoct@proton.me. We follow coordinated disclosure and publish advisories with fixes or mitigations.
By contributing, you agree that your contributions are licensed under the project’s MIT License. If you add third‑party code, ensure licenses are compatible and include proper attribution.
Open a discussion or an issue (using the appropriate template). For sensitive matters, contact ednoct@proton.me.
Thanks for helping ResoBoost stay sharp and sturdy. May your packets be swift, and your diffs small.