Developer Guide
Prerequisites
- Node.js 18+
- Rust (stable channel)
- Scoop installed locally
- Visual Studio Build Tools (or the full Tauri prerequisites)
Setup
git clone https://github.com/AmarBego/rscoop.git
cd rscoop
npm install
Run in dev mode with hot reload:
npm run tauri dev
Frontend only (just Vite, no Rust rebuild):
npm run dev
Build production installers:
npm run tauri build
Output goes to src-tauri/target/release/bundle.
Directory layout
| Folder | What’s in it |
|---|---|
src/ | SolidJS frontend. Pages, components, hooks, stores. |
src-tauri/ | Rust backend. Commands, Tauri config, plugins. |
pics/ | Screenshots for the README |
docs/ | This documentation site (GitHub Pages) |
Backend notes
- Commands are in
src-tauri/src/commands/, grouped by domain (search, install, buckets, doctor, etc.). - Use
utils.rshelpers for running PowerShell, probing Scoop state, and filesystem operations. - Log progress with
log::info!/log::warn!. The frontend operation modal picks these up throughtauri-plugin-log.
Frontend notes
- Hooks in
src/hooks/wrap backend calls and manage state. Extend existing hooks instead of duplicatinginvokecalls in components. installedPackagesStoreholds the canonical package list. Call itsrefetch()after any operation that changes Scoop state.- UI is built with Tailwind + daisyUI. Shared styles are in
App.css.
Debugging
- Open Settings > About to see version info, check for updates, and read logs.
- Set the
RUST_LOGenvironment variable for verbose output during development. - The system tray has a Refresh Apps entry that reloads Scoop app shortcuts without restarting.
- Enable Debug Mode in Settings > Window & UI to unlock rapid test intervals for the auto-update scheduler and access a debug info panel.