OpenInterfaces

Measure 2.2 “Open Interfaces” of the Mathematical Research Data Initiative (MaRDI) project

https://github.com/mardi4nfdi/open-interfaces

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.8%) to scientific vocabulary

Keywords

cross-language interoperability numerics research-software-engineering scientific-computing software-engineering
Last synced: 6 months ago · JSON representation ·

Repository

Measure 2.2 “Open Interfaces” of the Mathematical Research Data Initiative (MaRDI) project

Basic Info
Statistics
  • Stars: 4
  • Watchers: 5
  • Forks: 1
  • Open Issues: 15
  • Releases: 5
Topics
cross-language interoperability numerics research-software-engineering scientific-computing software-engineering
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

MaRDI Open Interfaces

QA DOI

MaRDI Open Interfaces is a project aiming to improve interoperability in scientific computing by removing two hurdles that computational scientists usually face in their daily work.

These hurdles are the following. First, numerical solvers are often implemented in different programming languages. Second, these solvers have potentially significantly diverging interfaces in terms of function names, order of function arguments, and the invocation order. Therefore, when a computational scientist wants to switch from one solver to another, it could take non-negligible effort in code modification and testing for the correctness.

Open Interfaces aim to alleviate these problems by providing automatic data marshalling between different languages and a set of interfaces for typical numerical problems such as integration of differential equations and optimization.

This project is the part of the Mathematical Research Data Initiative (MaRDI).

Data flow

Architecture of the MaRDI Open Interfaces

This figure shows the software architecture of the MaRDI Open Interfaces. There are two principal decoupled parts. The left part is user-facing and allows a user to request an implementation of some numerical procedure and then invoke different functions in this implementation to conduct computations using a unified interface (Gateway) that hides discrepancies between different implementations. The other part (on the right) is completely hidden from the user and works with an implementation of the interface. Particularly, it loads the implementation and its adapter and converts user data to the native data for the implementation.

Installation of Python bindings and implementations

The Python bindings and implementations of the interfaces are available from Python Package Index (PyPI) and can be installed using shell pip install openinterfaces

Run examples

Examples are provided in the examples directory in this repository. Documentation explaining some of these examples is available here: https://mardi4nfdi.github.io/open-interfaces/.

Funding

This work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy EXC 2044-390685587, “Mathematics Münster: Dynamics–Geometry–Structure” and the National Research Data Infrastructure, project number 460135501, NFDI 29/1 “MaRDI – Mathematical Research Data Initiative [Mathematische Forschungsdateninitiative]”.

Owner

  • Name: The NFDI Consortium of Mathematics
  • Login: MaRDI4NFDI
  • Kind: organization
  • Location: Germany

The Mathematical Research Data Initiative (MaRDI) is the initiative of mathematical science. We embrace a FAIR data culture and research workflow.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Kabanov
    given-names: Dmitry
    orcid: https://orcid.org/0000-0003-2521-4921
  - family-names: Rave
    given-names: Stephan
    orcid: https://orcid.org/0000-0003-0439-7212
  - family-names: Ohlberger
    given-names: Mario
    orcid: https://orcid.org/0000-0002-6260-3574
title: "MaRDI Open Interfaces"
version: 0.5.0
identifiers:
  - type: doi
    value: 10.5281/zenodo.13753666
date-released: 2025-04-04

GitHub Events

Total
  • Create event: 18
  • Release event: 3
  • Issues event: 20
  • Watch event: 3
  • Delete event: 12
  • Issue comment event: 9
  • Push event: 43
  • Pull request event: 78
Last Year
  • Create event: 18
  • Release event: 3
  • Issues event: 20
  • Watch event: 3
  • Delete event: 12
  • Issue comment event: 9
  • Push event: 43
  • Pull request event: 78

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 28
  • Total pull requests: 433
  • Average time to close issues: 6 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.32
  • Average comments per pull request: 0.39
  • Merged pull requests: 203
  • Bot issues: 0
  • Bot pull requests: 364
Past Year
  • Issues: 14
  • Pull requests: 87
  • Average time to close issues: 26 days
  • Average time to close pull requests: 3 days
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.36
  • Average comments per pull request: 0.05
  • Merged pull requests: 70
  • Bot issues: 0
  • Bot pull requests: 32
Top Authors
Issue Authors
  • dmitry-kabanov (27)
  • renefritze (2)
Pull Request Authors
  • dependabot[bot] (454)
  • dmitry-kabanov (85)
  • pre-commit-ci[bot] (51)
Top Labels
Issue Labels
enhancement (8) bug (5) lang-C (1) documentation (1)
Pull Request Labels
dependencies (454) python (352) lang-Python (68) github_actions (22) ci (12) lang-C (2) if-IVP (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 26 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 4
  • Total maintainers: 3
pypi.org: openinterfaces

Open Interfaces for improving Interoperability in Scientific Computing

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 26 Last month
Rankings
Dependent packages count: 6.6%
Average: 18.6%
Dependent repos count: 30.6%
Maintainers (3)
Last synced: 6 months ago
juliahub.com: OpenInterfaces

Measure 2.2 “Open Interfaces” of the Mathematical Research Data Initiative (MaRDI) project

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Average: 38.8%
Dependent packages count: 38.9%
Stargazers count: 52.9%
Forks count: 53.5%
Last synced: 6 months ago

Dependencies

.github/workflows/bot.yml actions
  • dependabot/fetch-metadata v1.3.6 composite
.github/workflows/build_images.yml actions
  • actions/checkout v3 composite
  • docker/build-push-action v4 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • docker/setup-buildx-action v2 composite
.github/workflows/docs.yml actions
  • actions/deploy-pages v1 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/git_checks.yml actions
  • actions/checkout v3 composite
  • olivernybroe/action-conflict-finder v4.0 composite
  • xt0rted/block-autosquash-commits-action v2 composite
.github/workflows/greetings.yml actions
  • actions/first-interaction v1 composite
.github/workflows/julia.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
  • krisalay/export-env v1.0.1 composite
.github/workflows/link_check.yml actions
  • actions/checkout v3 composite
  • renefritze/github-action-markdown-link-check master composite
.github/workflows/release-drafter.yml actions
  • release-drafter/release-drafter v5.22.0 composite
.github/workflows/test.yml actions
  • docker/login-action v2 composite
Dockerfile docker
  • zivgitlab.wwu.io/ag-ohlberger/mardi/container/m2-dev 0b226820d15dffaf74b6ee4952176fc91c3b28ca build
lang_python/package/pyproject.toml pypi
  • numpy *
requirements.in pypi
  • Jinja2 *
  • Sphinx *
  • alabaster *
  • attrs *
  • breathe *
  • exhale *
  • myst-nb *
  • myst-parser *
  • pip-tools *
  • pre-commit *
  • pytest *
  • pytest-datadir *
  • pytest-pycharm *
  • pytest-regressions *
  • python-dotenv *
requirements.txt pypi
  • alabaster ==0.7.12
  • asttokens ==2.0.5
  • attrs ==21.4.0
  • babel ==2.10.3
  • backcall ==0.2.0
  • beautifulsoup4 ==4.11.1
  • breathe ==4.34.0
  • build ==0.8.0
  • certifi ==2022.6.15
  • cfgv ==3.3.1
  • charset-normalizer ==2.1.0
  • click ==8.1.3
  • debugpy ==1.6.1
  • decorator ==5.1.1
  • distlib ==0.3.4
  • docutils ==0.17.1
  • entrypoints ==0.4
  • executing ==0.8.3
  • exhale ==0.3.4
  • fastjsonschema ==2.15.3
  • filelock ==3.7.1
  • greenlet ==1.1.2
  • identify ==2.5.1
  • idna ==3.3
  • imagesize ==1.4.1
  • importlib-metadata ==4.12.0
  • iniconfig ==1.1.1
  • ipykernel ==6.15.0
  • ipython ==8.4.0
  • jedi ==0.18.1
  • jinja2 ==3.1.2
  • jsonschema ==4.6.1
  • jupyter-cache ==0.5.0
  • jupyter-client ==7.3.4
  • jupyter-core ==4.10.0
  • lxml ==4.9.1
  • markdown-it-py ==2.1.0
  • markupsafe ==2.1.1
  • matplotlib-inline ==0.1.3
  • mdit-py-plugins ==0.3.0
  • mdurl ==0.1.1
  • myst-nb ==0.16.0
  • myst-parser ==0.18.0
  • nbclient ==0.5.13
  • nbformat ==5.4.0
  • nest-asyncio ==1.5.5
  • nodeenv ==1.7.0
  • packaging ==21.3
  • parso ==0.8.3
  • pep517 ==0.12.0
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • pip-tools ==6.8.0
  • platformdirs ==2.5.2
  • pluggy ==1.0.0
  • pre-commit ==2.19.0
  • prompt-toolkit ==3.0.30
  • psutil ==5.9.1
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • py ==1.11.0
  • pygments ==2.12.0
  • pyparsing ==3.0.9
  • pyrsistent ==0.18.1
  • pytest ==7.1.2
  • pytest-datadir ==1.3.1
  • pytest-pycharm ==0.7.0
  • pytest-regressions ==2.3.1
  • python-dateutil ==2.8.2
  • python-dotenv ==0.20.0
  • pytz ==2022.1
  • pyyaml ==6.0
  • pyzmq ==23.2.0
  • requests ==2.28.1
  • six ==1.16.0
  • snowballstemmer ==2.2.0
  • soupsieve ==2.3.2.post1
  • sphinx ==4.5.0
  • sphinx-togglebutton ==0.3.1
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.0
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • sqlalchemy ==1.4.39
  • stack-data ==0.3.0
  • tabulate ==0.8.10
  • toml ==0.10.2
  • tomli ==2.0.1
  • tornado ==6.2
  • traitlets ==5.3.0
  • typing-extensions ==4.3.0
  • urllib3 ==1.26.9
  • virtualenv ==20.15.1
  • wcwidth ==0.2.5
  • wheel ==0.37.1
  • zipp ==3.8.0