Skip to content

Commit 57ff2f3

Browse files
committed
README, документация, скриншоты и CI
1 parent 9223ae1 commit 57ff2f3

17 files changed

Lines changed: 691 additions & 0 deletions
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Bug report
2+
description: Report a problem in DownRust
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for the report. Fill in the fields below as far as you can.
10+
11+
- type: input
12+
id: version
13+
attributes:
14+
label: DownRust version
15+
description: Shown in Settings, then About.
16+
placeholder: "0.1.0"
17+
validations:
18+
required: true
19+
20+
- type: input
21+
id: windows
22+
attributes:
23+
label: Windows version
24+
placeholder: "Windows 11 Pro 23H2"
25+
validations:
26+
required: true
27+
28+
- type: dropdown
29+
id: area
30+
attributes:
31+
label: Part of the app
32+
options:
33+
- Downloads
34+
- Video (HLS or DASH)
35+
- Browser extension
36+
- Settings
37+
- Tray, drop zone or clipboard
38+
- Installer or portable mode
39+
- Other
40+
validations:
41+
required: true
42+
43+
- type: textarea
44+
id: steps
45+
attributes:
46+
label: Steps to reproduce
47+
placeholder: |
48+
1. Add a download from ...
49+
2. Pause it after ...
50+
3. ...
51+
validations:
52+
required: true
53+
54+
- type: textarea
55+
id: expected
56+
attributes:
57+
label: Expected result
58+
validations:
59+
required: true
60+
61+
- type: textarea
62+
id: actual
63+
attributes:
64+
label: Actual result
65+
validations:
66+
required: true
67+
68+
- type: textarea
69+
id: logs
70+
attributes:
71+
label: Log file
72+
description: |
73+
Attach the file downrust.log. It is in %LOCALAPPDATA%\com.downrust.desktop\logs (portable mode: data\logs next to DownRust.exe).
74+
In portable mode it is in the logs folder next to DownRust.exe, inside the data folder.
75+
Remove any private file names or addresses before you attach the file.
76+
validations:
77+
required: false

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: true
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Feature request
2+
description: Suggest a new feature or an improvement
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: What problem does this solve?
10+
placeholder: "I often need to ..."
11+
validations:
12+
required: true
13+
14+
- type: textarea
15+
id: proposal
16+
attributes:
17+
label: Proposed solution
18+
description: Describe the behavior you would like to see.
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: alternatives
24+
attributes:
25+
label: Alternatives you considered
26+
description: Other tools or settings that already help.
27+
validations:
28+
required: false
29+
30+
- type: input
31+
id: version
32+
attributes:
33+
label: DownRust version
34+
description: Shown in Settings, then About.
35+
placeholder: "0.1.0"
36+
validations:
37+
required: false

‎.github/pull_request_template.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Summary
2+
3+
<!-- What does this change do, and why? -->
4+
5+
## Checklist
6+
7+
- [ ] `cargo test --workspace` passes
8+
- [ ] `cargo clippy --workspace --all-targets -- -D warnings` passes
9+
- [ ] `cargo fmt --all -- --check` passes
10+
- [ ] `npm run typecheck` and `npm test` pass
11+
- [ ] New files start with the SPDX header `// SPDX-License-Identifier: GPL-3.0-or-later` (or `# SPDX-License-Identifier: GPL-3.0-or-later` for TOML and YAML)
12+
- [ ] User-visible text is added in both `src/i18n/en.ts` and `src/i18n/ru.ts`
13+
- [ ] CHANGELOG.md is updated if the change is visible to users

‎.github/workflows/ci.yml‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
check:
9+
runs-on: windows-latest
10+
steps:
11+
- name: Check out the repository
12+
uses: actions/checkout@v4
13+
14+
- name: Install the Rust toolchain
15+
uses: dtolnay/rust-toolchain@stable
16+
with:
17+
components: clippy, rustfmt
18+
19+
- name: Cache Rust build files
20+
uses: Swatinem/rust-cache@v2
21+
22+
- name: Set up Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: 22
26+
cache: npm
27+
28+
- name: Install npm packages
29+
run: npm ci
30+
31+
- name: Build the frontend
32+
run: npm run build
33+
34+
- name: Check formatting
35+
run: cargo fmt --all -- --check
36+
37+
- name: Run clippy
38+
run: cargo clippy --workspace --all-targets -- -D warnings
39+
40+
- name: Run Rust tests
41+
run: cargo test --workspace
42+
43+
- name: Typecheck the frontend
44+
run: npm run typecheck
45+
46+
- name: Run frontend tests
47+
run: npm test
48+
49+
- name: Lint the browser extension
50+
run: npm run extension:lint

‎.github/workflows/release.yml‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
runs-on: windows-latest
14+
steps:
15+
- name: Check out the repository
16+
uses: actions/checkout@v4
17+
18+
- name: Install the Rust toolchain
19+
uses: dtolnay/rust-toolchain@stable
20+
with:
21+
components: clippy, rustfmt
22+
23+
- name: Cache Rust build files
24+
uses: Swatinem/rust-cache@v2
25+
26+
- name: Set up Node.js
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: 22
30+
cache: npm
31+
32+
- name: Install npm packages
33+
run: npm ci
34+
35+
- name: Build the installers and create a draft release
36+
uses: tauri-apps/tauri-action@v0
37+
with:
38+
tagName: ${{ github.ref_name }}
39+
releaseName: "DownRust ${{ github.ref_name }}"
40+
releaseDraft: true
41+
prerelease: false
42+
43+
- name: Build the browser extension package
44+
run: npm run extension:build
45+
46+
- name: Upload the extension package to the draft release
47+
uses: softprops/action-gh-release@v2
48+
with:
49+
tag_name: ${{ github.ref_name }}
50+
draft: true
51+
files: dist-extension/*.xpi

‎CHANGELOG.md‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Changelog
2+
3+
All notable changes to DownRust are listed here. The newest version is first.
4+
5+
## 0.1.0 — first release (2026-11-14)
6+
7+
First public version of DownRust for Windows.
8+
9+
### Downloads
10+
11+
- Segmented downloads over several connections, with dynamic splitting of the largest remaining part.
12+
- Resume after pause, restart or crash, and automatic retries after errors.
13+
- Speed limits for all downloads and for each download.
14+
- Queue with a fixed order, a schedule for running hours and days, and an action when the queue is empty.
15+
- Categories with automatic sorting into `Downloads\DownRust`.
16+
- SHA-256 verification, refresh of expired links and optional disk space reservation.
17+
18+
### Video
19+
20+
- HLS streams, including AES-128 encrypted streams, with a choice of quality.
21+
- DASH streams and separate audio tracks, with ffmpeg.
22+
23+
### Browser
24+
25+
- Browser extension for Chrome, Edge, Firefox and Zen.
26+
- Capture of browser downloads, a context menu item and detection of HLS and DASH streams.
27+
28+
### Network
29+
30+
- System, direct and manual proxy, including SOCKS5, with proxy rules for each site.
31+
- HTTP Basic logins for each site, stored in Windows Credential Manager.
32+
33+
### Desktop
34+
35+
- Tray icon, floating drop zone, clipboard monitor and drag and drop.
36+
- Batch add with number patterns, warnings about duplicate downloads and statistics.
37+
- Optional scan of finished files with Windows Security.
38+
- Start with Windows, single instance and portable mode.
39+
- English and Russian interface, with light and dark themes.

‎CONTRIBUTING.md‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Contributing to DownRust
2+
3+
Thank you for your interest in DownRust. This guide explains how to set up the project, which checks to run and how the code is organized.
4+
5+
## Set up
6+
7+
You need:
8+
9+
- Rust (stable), with the MSVC toolchain from Visual Studio Build Tools
10+
- Node.js 22 or newer
11+
12+
```bash
13+
npm install
14+
npm run tauri dev
15+
```
16+
17+
## Checks
18+
19+
Run these before you open a pull request. CI runs the same checks on Windows.
20+
21+
```bash
22+
cargo fmt --all -- --check
23+
cargo clippy --workspace --all-targets -- -D warnings
24+
cargo test --workspace
25+
npm run typecheck
26+
npm test
27+
npm run build
28+
npm run extension:lint
29+
```
30+
31+
## Code style
32+
33+
- Each crate has one error enum. Use it for all errors of that crate.
34+
- Keep files small. Split a file when it covers more than one job.
35+
- Start every new source file with the license header:
36+
- Rust, TypeScript and JavaScript: `// SPDX-License-Identifier: GPL-3.0-or-later`
37+
- TOML, YAML and shell scripts: `# SPDX-License-Identifier: GPL-3.0-or-later`
38+
- Keep the existing layout of the workspace. The engine goes in `crates/downrust-core`, and the desktop shell goes in `src-tauri`.
39+
- Add every user-visible text to both `src/i18n/en.ts` and `src/i18n/ru.ts`.
40+
- Use the Astryx components and tokens for the interface. Do not add raw colors or inline styles.
41+
42+
## Pull requests
43+
44+
1. Fork the repository and create a branch for your change.
45+
2. Make the change and run the checks above.
46+
3. Open a pull request. Fill in the template and describe what the change does and why.
47+
4. Add a line to `CHANGELOG.md` when users can see the change.
48+
49+
## License
50+
51+
DownRust is free software under the GNU General Public License, version 3 or later. By contributing, you agree that your changes are released under the same license. See [LICENSE](LICENSE).

0 commit comments

Comments
 (0)