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.
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.
This repository is a monorepo containing packages for different languages.
- Python client and server, in ./python/ directory
- Julia client and server, in ./julia/ directory
- R server, in ./R/ directory
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.