Skip to content

eWaterCycle/remotebmi

Repository files navigation

Remote BMI

Logo

Contributor Covenant Codecov test coverage

Remote BMI allows you to communicate with BMI enabled numerical models using a RESTful API.

The Basic Model Interface (BMI) is a standard interface for models. The interface is available in different languages and a language agnosting version in SIDL.

To have a consumer of the model and the provider of the model seperated you can use grpc4bmi, but this only works on languages that have a gRPC implementation. This repository replaces the gRPC protocol with an REST API. The REST API specification is in the OpenAPI format.

Usage

For Python and Julia implementations are available both for model providers and consumers. R has a model provider implementation. For usage examples see the main remotebmi documentation.

Documentation for the available implementations can be found at:

For the OpenAPI specification reference documentation is available.

Repository structure

This repository is a monorepo containing packages for different languages.

  1. Python client and server, in ./python/ directory
  2. Julia client and server, in ./julia/ directory
  3. R server, in ./R/ directory

Other languages

Any language that can run a HTTP server and parse/load JSON can be used as a provider.

The server should implement the openapi.yaml specification.