Skip to content

Latest commit

 

History

History
98 lines (73 loc) · 1.99 KB

File metadata and controls

98 lines (73 loc) · 1.99 KB

Development Guide

Prerequisites

Setup

git clone https://github.com/novincode/dlman.git
cd dlman
pnpm install

Running

# Desktop app (dev mode)
pnpm tauri dev

# CLI
cargo run -p dlman-cli -- --help

# Build release
pnpm tauri build

Project Structure

dlman/
├── apps/
│   ├── desktop/          # Tauri + React app
│   │   ├── src/          # React frontend
│   │   └── src-tauri/    # Rust backend
│   ├── cli/              # CLI application
│   └── extension/        # Browser extension
├── crates/
│   ├── dlman-core/       # Core download engine
│   └── dlman-types/      # Shared types
└── docs/                 # Documentation

Tech Stack

Frontend: React 18, TypeScript, Tailwind CSS, shadcn/ui, Zustand

Backend: Tauri v2, Rust, tokio, reqwest, SQLite (sqlx)

Roadmap

  • Multi-segment parallel downloads
  • Queue management with speed limits
  • SQLite-based persistence
  • Per-download speed limits
  • Auto-retry failed downloads
  • Browser extension
  • Scheduled downloads
  • Auto-updates
  • Plugin system
  • Torrent support

Code Style

  • TypeScript: strict mode, no any
  • Rust: standard clippy lints
  • Files < 300 lines preferred
  • One component per file

Testing

# Rust tests
cargo test

# Type check frontend
cd apps/desktop && pnpm tsc --noEmit

Submitting Changes

See the Contributing Guide for detailed guidelines.

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a PR

Docs