Skip to content

Commit 4225a51

Browse files
Update README for v0.4.0 behavior
1 parent 1a1c327 commit 4225a51

1 file changed

Lines changed: 22 additions & 5 deletions

File tree

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ A standalone CLI is available in the companion `gosh-dl-cli` project for users w
2525
| Multi-connection HTTP/HTTPS | Up to 16 parallel connections per download |
2626
| Content-Disposition detection | Automatic filename from server headers |
2727
| Custom headers | User-Agent, Referer, cookies, arbitrary headers |
28-
| Checksum verification | MD5, SHA-1, SHA-256 |
28+
| Checksum verification | MD5, SHA-256 |
2929
| Concurrent download management | Priority queue (Critical/High/Normal/Low) |
3030
| Pause / resume / cancel | Full lifecycle control |
3131
| Event system | Broadcast channels for progress, state changes |
@@ -57,6 +57,7 @@ A standalone CLI is available in the companion `gosh-dl-cli` project for users w
5757
| uTP transport | 29 | LEDBAT congestion control, wired into peer connections (opt-in) |
5858
| HTTP resume || ETag/Last-Modified validation |
5959
| Mirror/failover || Automatic failover to alternate URLs |
60+
| Bandwidth scheduling || Time-of-day rules with live runtime limit updates |
6061
| Recursive HTTP mirroring || Feature-gated via `recursive-http`; crawls HTML directory indexes and expands into ordinary HTTP downloads |
6162
| Private torrent handling | 27 | Disables DHT/PEX/LPD |
6263
| Choking algorithm || Unchoke rotation, optimistic unchoking |
@@ -67,7 +68,6 @@ A standalone CLI is available in the companion `gosh-dl-cli` project for users w
6768
|---------|-------|
6869
| DHT IPv6 | Depends on upstream `mainline` crate |
6970
| Proxy support | Config field exists, not tested |
70-
| Bandwidth scheduling | Code exists, not tested |
7171
| File preallocation | Config field exists, not tested |
7272

7373
## Quick Start
@@ -76,15 +76,15 @@ Add to your `Cargo.toml`:
7676

7777
```toml
7878
[dependencies]
79-
gosh-dl = "0.1"
79+
gosh-dl = "0.4"
8080
tokio = { version = "1", features = ["full"] }
8181
```
8282

8383
To enable recursive HTTP directory mirroring:
8484

8585
```toml
8686
[dependencies]
87-
gosh-dl = { version = "0.1", features = ["recursive-http"] }
87+
gosh-dl = { version = "0.4", features = ["recursive-http"] }
8888
tokio = { version = "1", features = ["full"] }
8989
```
9090

@@ -277,7 +277,8 @@ while let Ok(event) = events.recv().await {
277277
## Configuration
278278

279279
```rust
280-
use gosh_dl::{EngineConfig, HttpConfig, DownloadPriority};
280+
use gosh_dl::{EngineConfig, HttpConfig, TorrentConfig};
281+
use gosh_dl::config::WebSeedConfig;
281282
use std::path::PathBuf;
282283

283284
let config = EngineConfig {
@@ -294,10 +295,26 @@ let config = EngineConfig {
294295
max_peers: 55,
295296
seed_ratio: 1.0,
296297
database_path: Some(PathBuf::from("/data/gosh-dl.db")),
298+
http: HttpConfig {
299+
max_retries: 8,
300+
read_timeout: 90,
301+
..Default::default()
302+
},
303+
torrent: TorrentConfig {
304+
webseed: WebSeedConfig {
305+
enabled: true,
306+
max_connections: 6,
307+
..Default::default()
308+
},
309+
..Default::default()
310+
},
297311
..Default::default()
298312
};
299313
```
300314

315+
You can also apply a replacement config at runtime with `engine.set_config(config)?;`.
316+
Queue concurrency and global bandwidth limits are applied to the live engine when you do this.
317+
301318
### Bandwidth Scheduling
302319

303320
```rust

0 commit comments

Comments
 (0)