4 releases (2 breaking)

Uses new Rust 2024

0.3.1 Apr 5, 2025
0.3.0 Apr 5, 2025
0.2.0 May 19, 2024
0.1.0 Jul 22, 2022

#350 in Geospatial

Download history 7/week @ 2025-03-16 2/week @ 2025-03-23 109/week @ 2025-03-30 129/week @ 2025-04-06

247 downloads per month

MIT/Apache

140KB
1.5K SLoC

ogcapi

Documentation Crate

The ogcapi crate provides various OGC API building blocks implemented in Rust.

Project Outline

The code is organized in modules, respectively crates:

Module / Crate Description
types Types as defined in various OGC API standards as well as STAC with serde support.
client Client to access HTTP endpoints of OGC API services as well as STAC wrapping reqwest
services Server implementation of various OGC API services based on axum.
drivers Drivers for different data provider backends, currently mainly PostgreSQL with PostGIS through sqlx.
processes Processor trait and implementations.

These modules are reexported within the ogcapi crate.

Quick Start (Podman/Docker)

This will take a while and use quite some disk space

# Setup the database
podman compose up --build

# Import administrative bounaries
podman exec -ti ogcapi cargo run -p data-loader -- --input data/ne_110m_admin_0_countries.geojson --collection countries

# Run app
podman exec -ti ogcapi cargo run -p demo-service

Open http://localhost:8484/ were you will find the Landing Page.

Developing

Prerequisites

  • Rust
  • Podman or Docker
  • GDAL
# Install SQLx CLI
cargo install sqlx-cli --no-default-features --features postgres,rustls

Setup

# Run services
podman compose up db minio minio-mc -d

# Import administrative bounaries
cargo run -p data-loader -- --input data/ne_110m_admin_0_countries.geojson --collection countries

# Start service 
cargo run -p demo-service

# Run tests
cargo test --workspace --all-features --all-targets

# Open Documentation
cargo doc --workspace --all-features --no-deps --open

Format / Lint

# Format
cargo fmt

# Clippy
cargo clippy --workspace --all-features --all-targets

Teamengine

podman run --network host docker.io/ogccite/ets-ogcapi-features10
# podman run --network host docker.io/ogccite/ets-ogcapi-edr10

Navigate to http://localhost:8080/teamengine/ to execute the test suite. For documentation and more info see https://cite.opengeospatial.org/teamengine/about/ogcapi-features-1.0/1.0/site.

Example Project

Based on this project, a STAC enabled OGC API Features service has successfully been setup. You can find the code from the prove of concept here

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~0–16MB
~232K SLoC