-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathCargo.toml
More file actions
108 lines (101 loc) · 4.11 KB
/
Cargo.toml
File metadata and controls
108 lines (101 loc) · 4.11 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
[package]
name = "pmtiles"
version = "0.21.0"
edition = "2024"
authors = ["Luke Seelenbinder <luke.seelenbinder@stadiamaps.com>", "Yuri Astrakhan <YuriAstrakhan@gmail.com>"]
license = "MIT OR Apache-2.0"
description = "Implementation of the PMTiles v3 spec with multiple sync and async backends."
repository = "https://github.com/stadiamaps/pmtiles-rs"
keywords = ["pmtiles", "gis", "geo"]
categories = ["science::geo"]
rust-version = "1.88"
[features]
# Default enables everything because semver checker and release-plz cannot pass this through
# See https://github.com/obi1kenobi/cargo-semver-checks/issues/1355
# In the future, we might want to change this to a more selective set of features.
default = ["__all_non_conflicting"]
aws-s3-async = ["__async-aws-s3"]
http-async = ["__async", "dep:reqwest"]
iter-async = ["__async", "dep:async-stream", "dep:futures-util"]
mmap-async-tokio = ["__async", "dep:fmmap", "fmmap?/tokio"]
moka = ["__async", "dep:moka"]
s3-async-native = ["__async-s3", "__async-s3-nativetls"]
s3-async-rustls = ["__async-s3", "__async-s3-rustls"]
tilejson = ["dep:tilejson", "dep:serde", "dep:serde_json"]
write = ["dep:countio", "dep:flate2", "dep:twox-hash"]
object-store = ["__async", "dep:object_store"]
brotli = ["dep:brotli", "async-compression/brotli"]
zstd = ["dep:zstd", "async-compression/zstd"]
# Forward some of the common features to reqwest dependency
reqwest-default = ["reqwest?/default"]
reqwest-native-tls = ["reqwest?/native-tls"]
reqwest-rustls = ["reqwest?/rustls"]
reqwest-rustls-native-certs = ["reqwest?/rustls-native-certs"]
reqwest-webpki-roots = ["reqwest?/webpki-roots"]
#### These features are for the internal usage only
# This is a list of features we use in docs.rs and other places where we want everything.
# This list excludes these conflicting features: s3-async-native
__all_non_conflicting = [
"aws-s3-async",
"http-async",
"iter-async",
"mmap-async-tokio",
"moka",
"s3-async-rustls",
"tilejson",
"write",
"object-store",
"brotli",
"zstd",
]
__async = ["dep:tokio", "async-compression/tokio"]
__async-s3 = ["__async", "dep:rust-s3"]
__async-s3-nativetls = ["rust-s3?/tokio-native-tls"]
__async-s3-rustls = ["rust-s3?/tokio-rustls-tls"]
__async-aws-s3 = ["__async", "dep:aws-sdk-s3"]
[dependencies]
# TODO: determine how we want to handle compression in async & sync environments
async-compression = { version = "0.4", features = ["gzip"] }
async-stream = { version = "0.3", optional = true }
aws-sdk-s3 = { version = "1.49.0", optional = true }
brotli = { version = "8.0.2", optional = true }
zstd = { version = "0.13", optional = true }
bytes = "1"
countio = { version = "0.3.0", optional = true }
fast_hilbert = "2.0.1"
flate2 = { version = "1", optional = true }
fmmap = { version = "0.4", default-features = false, optional = true }
futures-util = { version = "0.3", optional = true }
moka = { version = "0.12", optional = true, features = ["future"] }
object_store = { version = "0.13", optional = true, default-features = false }
reqwest = { version = "0.13.1", default-features = false, optional = true }
rust-s3 = { version = "0.37.0", optional = true, default-features = false, features = ["fail-on-err"] }
serde = { version = "1", optional = true }
serde_json = { version = "1", optional = true }
thiserror = "2"
tilejson = { version = "0.4", optional = true }
tokio = { version = "1", default-features = false, features = ["io-util"], optional = true }
twox-hash = { version = "2", optional = true, default-features = false, features = ["std", "xxhash3_64"] }
varint-rs = "2"
[dev-dependencies]
flate2 = "1"
fmmap = { version = "0.4", features = ["tokio"] }
reqwest = { version = "0.13.1", features = ["rustls", "webpki-roots"] }
rstest = "0.26.1"
tempfile = "3.13.0"
tokio = { version = "1", features = ["test-util", "macros", "rt"] }
url = "2"
[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"
unused_qualifications = "warn"
[lints.clippy]
# Restrictions
panic_in_result_fn = "warn"
todo = "warn"
unwrap_used = "warn"
panic = "warn"
# Pedantics without being too noisy
pedantic = { level = "warn", priority = -1 }
module_name_repetitions = "allow"
similar_names = "allow"