Skip to content

geo-engine/geoengine

Repository files navigation

Geo Engine

CI Coverage Status Documentation

Geo Engine is a geospatial data processing engine that allows you to perform spatial analyses and visualizations. Its query engine has native time support and can handle large datasets through stream processing. It supports various geospatial data formats and provides a robust API for integrating with other applications, e.g., by providing OGC APIs.

Overview

This workspace contains multiple projects that together provide a geospatial processing platform and related clients. The main pieces are:

  • geoengine – the Rust-based Geo Engine server and core libraries.
  • api-clients – generated OpenAPI-based API clients for various languages.
  • python – the Python library with bindings, packages, and tests.
  • ui – the Angular-based frontend projects, such as GIS and dashboards.
  • www – the project website and documentation (Astro + OpenAPI integration).

Each top-level directory has its own justfile for common commands; use just from the project directory you want to work on.

Quick start

Prerequisites

  • Ubuntu Linux (recommended for development; CI uses Ubuntu images).
  • Rust toolchain (use rustup)
  • Python (with venv and pipx)
  • Node.js (with npm and npx)
  • just command runner (used for task aliases across projects).

Example recipes

Install dependencies:

just install

Build everything:

just build

Run server and GIS:

just run

Run tests:

just test

For more commands, just call:

just

OpenAPI

This repository contains an OpenAPI specification for the Geo Engine API, which is used to generate API clients and documentation.

The OpenAPI spec is generated by the Rust CLI and checked by CI.

Development notes

  • Linting: We apply formatting and linting across the entire repository. Use just lint to run all linters, or run individual linters from the project justfile if configured.
  • See CODESTYLE.md for general coding guidelines.
  • The instructions directory contains information for development practices and language-specific guidelines. It is valuable for AI and humans.

Contributing

See the repository contributing guide for PR and CI requirements: CONTRIBUTING.md.

Project docs

Full documentation is published at https://www.geoengine.io/docs. For local docs and website development use the www project's justfile.

License

This repository is licensed under the Apache License, Version 2.0. See LICENSE for the full text.

About

Workspace for the geo engine crates

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors