Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/georust/ogcapi
- Owner: georust
- License: apache-2.0
- Created: 2022-04-08T16:58:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-19T12:23:33.000Z (6 months ago)
- Last Synced: 2024-10-29T18:58:38.462Z (9 days ago)
- Language: Rust
- Homepage:
- Size: 19.7 MB
- Stars: 25
- Watchers: 12
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-georust - OGC API - OGC API building blocks. (Watchlist)
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.