# Software
All developed software is organized within the openEO GitHub organization (opens new window).
# Clients
Software that allows remote sensers and other users to access the openEO back-ends:
| Client software | Package Manager / Hosted Version | GitHub | 
|---|---|---|
| JavaScript/TypeScript library | npm: @openeo/js-client (opens new window) | openeo-js-client (opens new window) | 
| Python library | PyPI: openeo (opens new window) / Conda Forge: openeo (opens new window) | openeo-python-client (opens new window) | 
| QGIS plugin | QGIS plugin repository: openeo-qgis-plugin-master (opens new window) | openeo-qgis-plugin (opens new window) | 
| R library | CRAN: openeo (opens new window) | openeo-r-client (opens new window) | 
| Web Editor | Hosted Version (opens new window) | openeo-web-editor (opens new window) | 
See the getting started guide for users for more information. Users considering to implement a new client library should read the getting started guide for client developers.
# Back-ends
Data and infrastructure providers can host their own instance of the openEO API:
- GeoPySpark (Geotrellis) (opens new window) (by VITO) - has integration tests (opens new window), requires GeoTrellis extensions (opens new window).
 - Google Earth Engine (opens new window) (by WWU)
 - GRASS GIS (opens new window) (by mundialis)
 - JEODPP (opens new window) (by JRC)
 - Open Data Cube (opens new window) (by EURAC, funded by ESA)
 - Apache Airflow / eoDataReaders (opens new window) (by EODC)
 - Sentinel Hub (opens new window) (by Sinergise)
 - WCPS (rasdaman) (opens new window) (by EURAC)
 - R back-end (opens new window) (by WWU) - discontinued until further notice (last version: 0.3)
 - TensorLakeHouse (opens new window) (by IBM Research)
 
See the getting started guide for back-end providers for more information.
To start developing a new back-end driver, you may start with any of the common functionalities implemented in several programming languages:
- Java (Spring) API Commons (opens new window)
 - Python API Commons (opens new window)
 - Python Process Graph Parser (opens new window)
 - JavaScript Process Graph Parser (opens new window)
 - Python Processes (opens new window) - many openEO processes implemented in Python
 
Our approach to tackle language-agnostic user-defined functions can be found in the following repositories:
- UDF Python reference implementation (opens new window)
 - UDF R reference implementation (opens new window)
 
# Specification
The API specification is available in the openEO API repository (opens new window). The process definitions are available in the openEO processes repository (opens new window).
# Ecosystem
- Back-end validator (opens new window) - Validation for back-end implementations. Image-based validation of EO processing results (opens new window) is also worked on.
 - openEO Hub (opens new window) (GitHub (opens new window)) - The central platform for openEO services.
 - Processes DocGen (opens new window) - A tool to generate a visual interface for openEO process definitions.
 - Vue.js Components (opens new window) - Common Vue.js 2 components for openEO
 - JavaScript Commons (opens new window) - Common JavaScript functionality for openEO clients and back-ends