English

MetaFFI -- Multilingual Indirect Interoperability System

Programming Languages 2025-09-17 v1

Abstract

The development of software applications using multiple programming languages has increased in recent years, as it allows the selection of the most suitable language and runtime for each component of the system and the integration of third-party libraries. However, this practice involves complexity and error proneness, due to the absence of an adequate system for the interoperability of multiple programming languages. Developers are compelled to resort to workarounds, such as library reimplementation or language-specific wrappers, which are often dependent on C as the common denominator for interoperability. These challenges render the use of multiple programming languages a burdensome and demanding task that necessitates highly skilled developers for implementation, debugging, and maintenance, and raise doubts about the benefits of interoperability. To overcome these challenges, we propose MetaFFI, a pluggable in-process indirect-interoperability system that allows the loading and utilization of entities from multiple programming languages. This is achieved by exploiting the less restrictive shallow binding mechanisms (e.g., Foreign Function Interface) to offer deep binding features (e.g., object creation, methods, fields). MetaFFI provides a runtime-independent framework to load and \emph{xcall} (Cross-Call) foreign entities (e.g., functions, objects). MetaFFI uses Common Data Types (CDTs) to pass parameters and return values, including objects and complex types, and even cross-language callbacks. The indirect interoperability approach of MetaFFI has the significant advantage of requiring only 2n2n mechanisms to support nn languages, as opposed to the direct interoperability approaches that need n2n^2 mechanisms. We have successfully tested the binding between Go, Python3.11, and Java in a proof-of-concept on Windows and Ubuntu.

Keywords

Cite

@article{arxiv.2408.14175,
  title  = {MetaFFI -- Multilingual Indirect Interoperability System},
  author = {Tsvi Cherny-Shahar and Amiram Yehudai},
  journal= {arXiv preprint arXiv:2408.14175},
  year   = {2025}
}

Comments

46 pages, 3 figures

R2 v1 2026-06-28T18:23:48.723Z