-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
82 lines (69 loc) · 2.07 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
[package]
name = "bolt-load"
edition = "2021"
version = "0.1.0"
[features]
default = ["reqwest", "tokio"]
http = [
"dep:headers",
"dep:regex",
"dep:language-tags",
"dep:percent-encoding",
"dep:http",
]
blocking = ["dep:blocking"]
# adapter group
reqwest = ["dep:reqwest", "http"]
ureq = ["dep:ureq", "blocking", "http"]
# runtime group
tokio = ["dep:tokio"]
smol = ["dep:smol", "dep:async-broadcast"]
async-std = ["dep:async-std"]
[lib]
name = "bolt_load"
path = "src/lib.rs"
[dependencies]
log = "0.4"
thiserror = "2"
async-trait = "0.1"
futures = "0.3"
url = "2"
bytes = "1"
tempfile = "3"
async-lock = "3" # for cross runtime async lock
ranges = "0.4" # for range set operation
async-channel = "2" # for async channel
async-fs = "2" # for async file operation
blocking = { version = "1", optional = true } # convert blocking io to async
oneshot = { version = "0.1", features = ["async"] }
# for http content-disposition parsing
http = { version = "1", optional = true }
regex = { version = "1", optional = true }
language-tags = { version = "0.3", optional = true }
percent-encoding = { version = "2.3", optional = true }
# for http headers
headers = { version = "0.4", optional = true }
# for reqwest adapter
reqwest = { version = "0.12", optional = true, features = ["stream"] }
# for ureq adapter
ureq = { version = "2", optional = true }
# runtime group
tokio = { version = "1", features = ["rt", "rt-multi-thread"], optional = true }
smol = { version = "2", optional = true }
async-broadcast = { version = "0.7", optional = true }
async-std = { version = "1", optional = true }
[dev-dependencies]
pretty_assertions = "1"
tokio = { version = "1", features = ["full"] }
tokio-util = "0.7"
anyhow = "1"
test-log = "0.2"
# for stream test
async-stream = "0.3"
# for generate a random file
rand = "0.8"
# for http server test
axum = "0.7"
axum-extra = { version = "0.9", features = ["typed-header"] }
axum-range = "0.4"
portpicker = "0.1"