Skip to main content

Crate arcgis

Crate arcgis 

Source
Expand description

§arcgis

A type-safe Rust SDK for the ArcGIS REST API.

This library provides strongly-typed interfaces to ArcGIS services with compile-time guarantees. Instead of error-prone string constants, it uses Rust enums and newtypes to make invalid states unrepresentable.

§Features

  • 🔒 Type-safe: Enums instead of strings - compile-time validation
  • 🌍 GeoRust integration: Native geo-types support
  • 🔐 Authentication: API Key and OAuth 2.0
  • Async/await: Built on tokio and reqwest
  • 🎯 Modular: Optional services via Cargo features

§Quick Start

use arcgis::{ApiKeyAuth, ArcGISClient};

#[tokio::main]
async fn main() -> Result<(), arcgis::Error> {
    let auth = ApiKeyAuth::new("YOUR_API_KEY");
    let client = ArcGISClient::new(auth);

    // Use the client to access ArcGIS services
    Ok(())
}

§Type Safety

This SDK enforces type safety throughout:

use arcgis::{GeometryType, SpatialRel};

// ✅ Compile-time validated
let geom_type = GeometryType::Point;
let spatial_rel = SpatialRel::Intersects;

// ❌ Won't compile
// let geom_type = "esriGeometryPoint";  // Wrong type!

Re-exports§

pub use geo_types;
pub use geojson;

Structs§

AddAttachmentResult
Result of adding an attachment.
AddItemParams
Parameters for adding a new item to the portal.
AddItemResult
Result from adding an item.
AddressCandidate
A candidate address returned from geocoding.
AlterResponse
Response from alter operation.
AlterVersionParams
Parameters for altering an existing version’s properties.
ApiKeyAuth
API Key authentication provider.
ArcGISClient
The main client for interacting with ArcGIS services.
ArcGISEnvelope
ArcGIS Envelope (bounding box) geometry.
ArcGISMultipoint
ArcGIS Multipoint geometry.
ArcGISPoint
ArcGIS Point geometry.
ArcGISPolygon
ArcGIS Polygon geometry.
ArcGISPolyline
ArcGIS Polyline geometry.
AreasAndLengthsParameters
Parameters for calculating areas and lengths.
AreasAndLengthsParametersBuilder
Builder for AreasAndLengthsParameters.
AreasAndLengthsResult
Response from areas and lengths calculation.
AttachmentId
Attachment ID for a feature attachment.
AttachmentInfo
Information about a feature attachment.
AttachmentInfosResponse
Response from querying attachments.
BatchCandidateResult
Candidates for a single address in batch processing.
BatchCandidatesResponse
Response from batch findAddressCandidates.
BatchGeocodeResponse
Response from batch geocoding (geocodeAddresses).
BatchLocation
A single result from batch geocoding.
BufferParameters
Parameters for the buffer operation.
BufferParametersBuilder
Builder for BufferParameters.
BufferResult
Response from buffer operation.
BuilderError
Builder error wrapper for derive_builder errors.
CategoriesResult
Category listing result.
CategoryInfo
Detailed category information.
ClassBreakInfo
Information about a classification break.
ClientCredentialsAuth
OAuth 2.0 Client Credentials authentication provider.
ClosestFacilityParameters
Parameters for closest facility calculation.
ClosestFacilityParametersBuilder
Builder for ClosestFacilityParameters.
ClosestFacilityResult
Result from closest facility calculation.
CodedValue
A coded value in a domain.
ConflictEntry
A conflict entry for a specific feature.
ConflictFeature
Feature state at a specific version in a conflict.
ConflictsResponse
Response from conflicts operation.
CreateGroupParams
Parameters for creating a new group.
CreateServiceParams
Parameters for creating a new hosted feature service.
CreateServiceResult
Result from creating a service.
CreateVersionParams
Parameters for creating a new version.
CreateVersionResponse
Response from create operation.
DayHours
Operating hours for a specific day.
DeleteAttachmentResult
Individual result for a single attachment deletion.
DeleteAttachmentsResponse
Response from deleting attachments.
DeleteForwardEditsResponse
Response from delete forward edits operation.
DeleteItemResult
Result from deleting an item.
DeleteResponse
Response from delete operation.
DeleteServiceResult
Result from deleting a service.
DifferenceFeature
Feature data for a difference entry.
DifferencesResponse
Response from differences operation.
DistanceParameters
Parameters for distance calculation.
DistanceParametersBuilder
Builder for DistanceParameters.
DistanceResult
Response from distance calculation.
Domain
A coded value domain.
EditError
Error details for a failed edit operation.
EditOptions
Options for controlling edit behavior.
EditResult
Result of an edit operation (add, update, or delete).
EditResultItem
Individual result for a single feature edit.
EditSessionError
Error information from edit session operations.
ElevationClient
Client for interacting with ArcGIS Elevation Services.
EnvConfig
Environment configuration for ArcGIS SDK.
EnvError
Environment variable error wrapper.
Error
The main error type for the ArcGIS SDK.
ExportExtent
Extent returned in export response.
ExportImageParameters
Parameters for exporting an image.
ExportImageParametersBuilder
Builder for ExportImageParameters.
ExportImageResult
Result from exporting an image.
ExportMapBuilder
A fluent builder for constructing and executing map export operations.
ExportMapParams
Parameters for exporting a map image.
ExportMapParamsBuilder
Builder for ExportMapParams.
ExportMapResponse
Response from export map operation (JSON format).
Extent
Bounding box extent.
Feature
A single feature returned from a feature service.
FeatureQueryParams
Parameters for querying features from a feature service.
FeatureQueryParamsBuilder
Builder for FeatureQueryParams.
FeatureServiceClient
Client for interacting with an ArcGIS Feature Service.
FeatureSet
A set of features returned from a query.
FeatureStatisticsResponse
Response from a feature statistics query.
FieldCalculation
Field calculation expression for calculateRecords operation.
FindParams
Parameters for the find operation.
FindParamsBuilder
Builder for FindParams.
FindResponse
Response from find operation.
FindResult
A single find result.
FontStack
A font stack name (e.g., “Arial Regular”, “Noto Sans Bold”).
GPBoolean
A boolean parameter value.
GPDataFile
A data file parameter.
GPDate
A date parameter value (milliseconds since epoch).
GPDouble
A double (floating point) parameter value.
GPExecuteResult
Result from a geoprocessing execution.
GPFeatureRecordSetLayer
A feature record set layer parameter (GeoJSON-like features).
GPJobInfo
Information about an asynchronous geoprocessing job.
GPLinearUnit
A linear unit parameter (distance with unit).
GPLong
A long (integer) parameter value.
GPMessage
A message from geoprocessing execution.
GPRasterDataLayer
A raster data layer parameter.
GPResultParameter
A geoprocessing result parameter.
GPString
A string parameter value.
GenerateKmlParams
Parameters for generating KML output.
GenerateKmlParamsBuilder
Builder for GenerateKmlParams.
GenerateRendererParams
Parameters for generating a classification renderer.
GenerateRendererParamsBuilder
Builder for GenerateRendererParams.
GeocodeAddress
Address information from reverse geocoding.
GeocodeResponse
Response from findAddressCandidates operation.
GeocodeServiceClient
Client for interacting with an ArcGIS Geocoding Service.
GeometryServiceClient
Client for interacting with an ArcGIS Geometry Service.
GeoprocessingServiceClient
Client for interacting with ArcGIS Geoprocessing Services (GPServer).
GlyphRange
A glyph range for font characters (e.g., 0-255).
GroupInfo
Group information from portal.
GroupMembership
Group membership information.
GroupResult
Generic result for group operations.
GroupSearchParameters
Parameters for searching groups.
GroupSearchResult
Search result for groups.
HistogramParameters
Parameters for histogram computation.
HistogramParametersBuilder
Builder for HistogramParameters.
HistogramResult
Result from histogram computation.
HttpError
HTTP request error wrapper.
IdentifyParameters
Parameters for identify operation.
IdentifyParametersBuilder
Builder for IdentifyParameters.
IdentifyParams
Parameters for identifying features on a map.
IdentifyParamsBuilder
Builder for IdentifyParams.
IdentifyResponse
Response from identify operation.
IdentifyResult
A single identified feature.
ImageIdentifyResult
Result from identify operation.
ImageServiceClient
Client for interacting with ArcGIS Image Services (ImageServer).
InspectConflictFeature
Specification for inspecting a specific feature conflict.
InspectConflictLayer
Specification for inspecting conflicts in a specific layer.
InspectConflictsResponse
Response from inspect conflicts operation.
IoError
File I/O error wrapper.
ItemInfo
Portal item information.
JsonError
JSON serialization/deserialization error wrapper.
LayerConflicts
Conflicts for a specific layer.
LayerDefinitions
Builder for layer definition expressions.
LayerDomainInfo
Domain information for a single layer.
LayerFeatureDifferences
Feature differences for a specific layer.
LayerId
Layer ID within a feature or map service.
LayerLegend
Legend information for a single layer.
LayerObjectIdDifferences
Object ID differences for a specific layer.
LegendResponse
Response from legend operation.
LegendSymbol
Symbol in a layer legend.
LevelOfDetail
A level of detail in a tile cache.
MapServiceClient
Client for interacting with an ArcGIS Map Service.
MapServiceMetadata
Map service metadata.
MosaicRule
Mosaic rule for combining multiple rasters.
NALocation
A location for network analysis operations.
NoAuth
No authentication provider for accessing public ArcGIS services.
ODCostMatrixParameters
Parameters for origin-destination cost matrix calculation.
ODCostMatrixParametersBuilder
Builder for ODCostMatrixParameters.
ODCostMatrixResult
Result from origin-destination cost matrix calculation.
ObjectId
Object ID for a feature.
OverwriteParameters
Parameters for overwriting a service.
OverwriteResult
Result from overwriting a service.
PartialPostRow
Specifies a subset of edits to post for partial post operations.
PlaceAddress
Place address information.
PlaceCategory
Place category information.
PlaceContactInfo
Place contact information.
PlaceDetailsResult
Detailed place information result.
PlaceHours
Place operating hours.
PlaceInfo
Information about a place (point of interest).
PlaceRating
Place rating information.
PlaceSearchParameters
Parameters for searching places near a point.
PlaceSearchParametersBuilder
Builder for PlaceSearchParameters.
PlaceSearchResult
Result from place search operation.
PlacesClient
Client for interacting with ArcGIS Places Service.
PortalClient
Client for interacting with ArcGIS Portal (ArcGIS Online or Portal for ArcGIS).
PostResponse
Response from post operation.
ProfileParameters
Parameters for generating an elevation profile.
ProfileParametersBuilder
Builder for ProfileParameters.
ProfileResult
Result from elevation profile operation.
ProjectParameters
Parameters for the project operation.
ProjectParametersBuilder
Builder for ProjectParameters.
ProjectResult
Response from project operation.
PublishParameters
Parameters for publishing a hosted service.
PublishResult
Result from publishing a service.
PublishStatus
Status of a publishing job.
QueryBuilder
A fluent builder for constructing and executing feature queries.
QueryDomainsResponse
Response from queryDomains operation.
RasterInfo
Raster information metadata.
ReconcileResponse
Response from reconcile operation.
RelatedRecordGroup
A group of related records for a specific source object ID.
RelatedRecordsParams
Parameters for querying related records.
RelatedRecordsParamsBuilder
Builder for RelatedRecordsParams.
RelatedRecordsResponse
Response from a query related records operation.
RendererResponse
Response from generateRenderer operation.
RenderingRule
Rendering rule for dynamic visualization.
RestoreRowsLayer
Specification for restoring rows in a specific layer.
RestoreRowsResponse
Response from restore rows operation.
ReverseGeocodeResponse
Response from reverseGeocode operation.
RouteParameters
Parameters for route calculation.
RouteParametersBuilder
Builder for RouteParameters.
RouteResult
Result from route calculation.
RoutingServiceClient
Client for interacting with an ArcGIS Routing Service (Network Analyst Server).
SampleParameters
Parameters for sampling operation.
SampleParametersBuilder
Builder for SampleParameters.
SampleResult
Result from sampling operation.
SearchParameters
Search parameters for portal items.
SearchResult
Search result from portal.
ServiceAreaParameters
Parameters for service area calculation.
ServiceAreaParametersBuilder
Builder for ServiceAreaParameters.
ServiceAreaResult
Result from service area calculation.
ServiceLayer
Layer information in service metadata.
SessionId
A session identifier for edit operations.
ShareItemResult
Result from sharing an item.
SharingParameters
Parameters for sharing an item.
SimplifyParameters
Parameters for the simplify operation.
SimplifyParametersBuilder
Builder for SimplifyParameters.
SimplifyResult
Response from simplify operation.
StartEditingResponse
Response from startEditing operation.
StartReadingResponse
Response from startReading operation.
StatisticDefinition
Defines a field-based statistic to calculate.
StopEditingResponse
Response from stopEditing operation.
StopReadingResponse
Response from stopReading operation.
Subtype
Subtype information.
SuggestResponse
Response from suggest operation.
Suggestion
Suggestion from autocomplete/suggest operation.
SummarizeElevationParameters
Parameters for summarizing elevation within a polygon.
SummarizeElevationParametersBuilder
Builder for SummarizeElevationParameters.
SummarizeElevationResult
Result from summarize elevation operation.
TileCoordinate
Tile coordinate for tile requests.
TileInfo
Tile cache information.
TopFeaturesParams
Parameters for querying top features from a feature service layer.
TopFeaturesParamsBuilder
Builder for TopFeaturesParams.
TopFilter
Top filter specification for queryTopFeatures operations.
Transformation
Datum transformation information.
TruncateResult
Response from truncate operation.
UnionParameters
Parameters for the union operation.
UnionParametersBuilder
Builder for UnionParameters.
UnionResult
Response from union operation.
UniqueValueInfo
Information about a unique value.
UnshareItemResult
Result from unsharing an item.
UpdateAttachmentResult
Result of updating an attachment.
UpdateGroupParams
Parameters for updating an existing group.
UpdateItemParams
Parameters for updating an existing item.
UpdateItemResult
Result from updating an item.
UpdateServiceDefinitionParams
Parameters for updating a service definition.
UpdateServiceDefinitionResult
Result from updating a service definition.
UrlEncodedError
URL-encoded form serialization error wrapper.
UrlError
URL parsing error wrapper.
UserInfo
Information about a portal user.
VectorTileServiceClient
Client for interacting with ArcGIS Vector Tile Services.
VectorTileStyle
A Mapbox GL style document.
VersionGuid
A version identifier (GUID).
VersionInfo
Information about a version.
VersionInfosResponse
Response from versionInfos operation (list all versions).
VersionManagementClient
Client for interacting with an ArcGIS Version Management Service.
ViewshedParameters
Parameters for viewshed analysis.
ViewshedParametersBuilder
Builder for ViewshedParameters.
ViewshedResult
Result from viewshed analysis.

Enums§

ArcGISGeometry
Union type for all ArcGIS geometry types.
AreaUnit
Area units for measurements.
AttachmentSource
Source for attachment file data.
BarrierType
Type of barrier.
CalculationType
Calculation type for geometric operations.
Category
Category for filtering geocoding results.
ConflictDetection
Conflict detection type for reconcile operations.
CurbApproach
Curb approach for navigating to a location.
DemResolution
DEM resolution options.
DifferenceResultType
Result type for differences operation.
DirectionsLength
Directions length units.
DirectionsStyle
Directions style.
DirectionsTimeAttribute
Directions time attribute.
DownloadResult
Result of downloading an attachment.
DownloadTarget
Target for attachment download.
ErrorKind
Specific error conditions for the ArcGIS SDK.
ExportResult
Result of a map export operation.
ExportTarget
Target for map export output.
GPJobStatus
Status of an asynchronous geoprocessing job.
GPMessageType
Type of geoprocessing message.
GPParameter
A geoprocessing parameter value.
GeometryType
ArcGIS geometry types.
GroupMembershipType
User’s membership type in a group.
ImageFormat
Image format for exported maps.
ImpedanceAttribute
Impedance attribute for cost calculation.
InterpolationType
Interpolation type for resampling.
LayerOperation
Layer visibility operations.
LayerSelection
Which layers to identify in an identify operation.
LinearUnit
Linear units for distance measurements and buffers.
LocationType
Location type for geocoding results.
OutputLine
Output line type for routes.
PixelType
Pixel type for raster data.
ResponseFormat
Response format for feature service queries.
RestrictionAttribute
Restriction attribute for routing.
RouteShape
Shape type for route geometry.
SortOrder
Sort order for search results.
SpatialReference
Spatial reference for ArcGIS geometries.
SpatialRel
Spatial relationship types for queries.
StatisticType
Statistical operation type for aggregate queries.
TimeRelation
Time relationship for temporal queries.
TravelDirection
Travel direction for analysis.
TravelMode
Travel mode for routing.
UTurnPolicy
U-turn policy at junctions.
VersionPermission
Access permission level for a version.
VersioningType
Versioning type for a geodatabase.

Traits§

AuthProvider
Trait for authentication providers.

Type Aliases§

Result
Result type alias using this crate’s Error type.