[package]
name = "pmtiles"
version = "0.11.0"
edition = "2021"
authors = ["Luke Seelenbinder <luke.seelenbinder@stadiamaps.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"]
rust-version = "1.81.0"
categories = ["science::geo"]
[features]
default = []
http-async = ["__async", "dep:reqwest"]
mmap-async-tokio = ["__async", "dep:fmmap", "fmmap?/tokio-async"]
s3-async-native = ["__async-s3", "__async-s3-nativetls"]
s3-async-rustls = ["__async-s3", "__async-s3-rustls"]
aws-s3-async = ["__async-aws-s3"]
tilejson = ["dep:tilejson", "dep:serde", "dep:serde_json"]
reqwest-default = ["reqwest?/default"]
reqwest-native-tls = ["reqwest?/native-tls"]
reqwest-rustls-tls = ["reqwest?/rustls-tls"]
reqwest-rustls-tls-native-roots = ["reqwest?/rustls-tls-native-roots"]
reqwest-rustls-tls-webpki-roots = ["reqwest?/rustls-tls-webpki-roots"]
__async = ["dep:tokio", "async-compression/tokio"]
__async-s3 = ["__async", "dep:rust-s3"]
__async-s3-nativetls = ["rust-s3?/use-tokio-native-tls"]
__async-s3-rustls = ["rust-s3?/tokio-rustls-tls"]
__async-aws-s3 = ["__async", "dep:aws-sdk-s3"]
[dependencies]
aws-sdk-s3 = { version = "1.49.0", optional = true }
async-compression = { version = "0.4", features = ["gzip"] }
bytes = "1"
fmmap = { version = "0.3", default-features = false, optional = true }
hilbert_2d = "1"
reqwest = { version = "0.12.4", default-features = false, optional = true }
rust-s3 = { version = "0.35.1", optional = true, default-features = false, features = ["fail-on-err"] }
serde = { version = "1", optional = true }
serde_json = { version = "1", optional = true }
thiserror = "1"
tilejson = { version = "0.4", optional = true }
tokio = { version = "1", default-features = false, features = ["io-util"], optional = true }
varint-rs = "2"
[dev-dependencies]
flate2 = "1"
fmmap = { version = "0.3", features = ["tokio-async"] }
reqwest = { version = "0.12.4", features = ["rustls-tls-webpki-roots"] }
tokio = { version = "1", features = ["test-util", "macros", "rt"] }
[package.metadata.docs.rs]
all-features = true
[lints.rust]
unsafe_code = "forbid"
unused_qualifications = "warn"
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
missing_errors_doc = "allow"
module_name_repetitions = "allow"
panic_in_result_fn = "warn"
similar_names = "allow"
todo = "warn"
unwrap_used = "warn"