-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
111 lines (90 loc) · 2.73 KB
/
Copy pathCargo.toml
File metadata and controls
111 lines (90 loc) · 2.73 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
109
110
111
[package]
name = "arcgis"
version = "0.1.3"
edition = "2024"
rust-version = "1.85"
authors = ["Erik Rose <erik.w.rose@gmail.com>"]
license = "MIT OR Apache-2.0"
description = "Type-safe Rust SDK for the ArcGIS REST API with compile-time guarantees"
repository = "https://github.com/crumplecup/arcgis"
documentation = "https://docs.rs/arcgis"
homepage = "https://github.com/crumplecup/arcgis"
keywords = ["arcgis", "gis", "geospatial", "esri", "maps"]
categories = ["api-bindings", "web-programming::http-client"]
readme = "README.md"
exclude = [".github/", "benches/"]
[features]
# Testing features (organized by API key privilege classes)
test-public = [
] # Tier 1: Public tests using free ArcGIS services (no authentication)
test-location = [
] # Tier 2: Location Services + Spatial Analysis (requires ARCGIS_LOCATION_KEY)
test-content = [
] # Tier 3: Content + Sharing + Groups - content management (requires ARCGIS_CONTENT_KEY, manual only)
test-features = [
] # Tier 3: Features - editing privileges (requires ARCGIS_FEATURES_KEY, manual only)
[dependencies]
# Core HTTP and async runtime
reqwest = { version = "0.13", features = [
"json",
"rustls",
"multipart",
"stream",
"query",
"form",
] }
tokio = { version = "1", features = ["rt", "macros", "fs", "io-util"] }
futures = "0.3"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_urlencoded = "0.7"
# Authentication
oauth2 = "5"
# URL handling
url = "2.5"
# MIME type detection for attachments
mime_guess = "2.0"
# Error handling
derive_more = { version = "2.0", features = ["display", "error", "from"] }
# Logging
tracing = "0.1"
# Spatial types (GeoRust ecosystem - always included)
geo-types = "0.7"
geojson = { version = "0.24", features = ["geo-types"] }
# Time handling
chrono = { version = "0.4", features = ["serde"] }
# Security
secrecy = { version = "0.10", features = ["serde"] }
# Environment variable management
dotenvy = "0.15"
# Async traits
async-trait = "0.1"
# Derive macros for getters/setters
derive-getters = "0.5"
derive_setters = "0.1"
derive-new = "0.7"
derive_builder = "0.20"
# UUID generation for session IDs
uuid = { version = "1", features = ["v4", "serde"] }
# Protocol Buffers (for PBF format support)
prost = "0.14"
bytes = "1.5"
# Optional dependencies (enabled by features)
geozero = { version = "0.15", optional = true }
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
tokio-test = "0.4"
mockito = "1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
anyhow = "1"
config = "0.15"
[build-dependencies]
prost-build = "0.14"
# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]