The ogcapi
crate provides various OGC API building blocks implemented in Rust.
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.
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
.
- Rust
- Podman or Docker
- GDAL
# Install SQLx CLI
cargo install sqlx-cli --no-default-features --features postgres,rustls
# 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
cargo fmt
# Clippy
cargo clippy --workspace --all-features --all-targets
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.
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
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.