- TypeScript 58.9%
- CSS 25.1%
- Rust 13.7%
- JavaScript 1.5%
- Shell 0.4%
- Other 0.4%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| artifacts/macos | ||
| docs | ||
| k8s | ||
| public | ||
| scripts | ||
| src | ||
| src-tauri | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| AGENTS.md | ||
| BUILD_MACOS.md | ||
| DESIGN.md | ||
| Dockerfile | ||
| Dockerfile.aarch64 | ||
| Dockerfile.base | ||
| Dockerfile.windows | ||
| Dockerfile.windows-base | ||
| eslint.config.js | ||
| index.html | ||
| package.json | ||
| PLAYBACK_STABILIZATION_PLAN.md | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| TODO | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
MLV Desktop
MLV Desktop is the production desktop app for MLV / Media Local Viewer. It is a Tauri 2 application with a React frontend and a Rust native backend for local-first media workflows.
The app supports discovery, watchlists, local/offline playback, torrent-backed streams, native/libVLC playback, HTML5 fallback playback, FFmpeg helpers, backend proxying, updater integration, and desktop packaging.
Stack
- Tauri 2
- React 19, TypeScript, Vite
- Rust native commands and services
- SQLite for local desktop data
- pnpm with
pnpm-lock.yaml - Forgejo Actions for Linux and Windows release automation
Setup
Install Node.js, pnpm, Rust, and the platform dependencies required by Tauri.
pnpm install --frozen-lockfile
For local playback testing, install VLC and FFmpeg or provide bundled sidecar binaries under src-tauri/binaries/. See src-tauri/binaries/README.md and src-tauri/binaries/VLC_SETUP.md.
Development
pnpm tauri:dev
Frontend-only development is also available:
pnpm dev
The Tauri dev URL is configured as http://127.0.0.1:1420.
Fast Checks
Default checks before handing off changes:
pnpm check:encoding
pnpm typecheck
For design-token and route smoke coverage:
pnpm check:theme
pnpm test:home-discovery
pnpm test:search-page
pnpm test:media-detail
For Rust/Tauri changes:
cd src-tauri
cargo check
pnpm lint is useful, but the project may still contain existing lint warnings. Do not treat lint cleanup as part of unrelated changes.
Builds
General Tauri build:
pnpm tauri:build
macOS local builds are documented in BUILD_MACOS.md.
Production Linux and Windows artifacts are built by Forgejo Actions. Release automation also signs updater bundles and publishes updater metadata, so changes to .forgejo, Dockerfiles, NSIS, versioning, signing, or updater config should be reviewed carefully.
Documentation
Start here for project context:
AGENTS.mddocs/knowledge/project-memory.mddocs/knowledge/desktop-architecture.mddocs/knowledge/native-backend.mddocs/knowledge/playback-and-streaming.mddocs/knowledge/build-and-release.mddocs/knowledge/known-errors.mdDESIGN.mddocs/design-system.md
Notes
- Do not use
npm installfor release-oriented work. - Do not commit or push release/build changes without explicit approval.
- Preserve both online/backend mode and offline/local mode unless a task explicitly changes one of them.