Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/georust/ogcapi

OGC API building blocks implemented in Rust
https://github.com/georust/ogcapi

Last synced: about 17 hours ago
JSON representation

OGC API building blocks implemented in Rust

Awesome Lists containing this project

README

        

# `ogcapi`

[OGC API](https://ogcapi.ogc.org/) building blocks implemented in [Rust](https://www.rust-lang.org/)

## Project Outline

The code is organized in four modules, respectively crates:

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

These modules are reexported within the `ogcapi` crate.

## Quick Start

This will take a while and use quite some disk space

```bash
# Setup the database
docker compose up

# Import administrative bounaries
docker exec -ti ogcapi cargo run -- import \
--input data/ne_110m_admin_0_countries.geojson \
--collection countries

# Run app
docker exec -ti ogcapi cargo run -- serve
```

Open were you will find the `Landing Page`.

## Developing

### Prerequisites

- Rust
- Docker & Docker Compose
- GDAL

```bash
# Install SQLx CLI
cargo install sqlx-cli --no-default-features --features postgres,rustls
```

### Setup

```bash
# Run services
docker compose up db minio minio-mc -d

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

# Start service
cargo run -- serve

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

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

### Format / Lint

```bash
# Format
cargo fmt

# Clippy
cargo clippy --workspace --all-features --tests
```

### Teamengine

```bash
docker run --network host ogccite/ets-ogcapi-features10
# docker run --network host ogccite/ets-ogcapi-edr10
```

Navigate to to execute the test suite. For documentation and more info see .

## 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](https://github.com/camptocamp/oapi-poc)

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or )
- MIT license ([LICENSE-MIT](LICENSE-MIT) or )

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.