[package] name = "pmtiles" version = "0.11.0" edition = "2021" authors = ["Luke Seelenbinder "] 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"] # Forward some of the common features to reqwest dependency 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"] # Internal features, do not use __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] # TODO: determine how we want to handle compression in async & sync environments 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"