MetaFFI -- Multilingual Indirect Interoperability System
Tsvi Cherny-Shahar, Amiram Yehudai

TL;DR
MetaFFI is a pluggable system enabling indirect interoperability among multiple programming languages, simplifying multi-language application development by reducing complexity and dependency on C-based workarounds.
Contribution
It introduces a runtime-independent framework that supports deep binding features across languages using shallow binding mechanisms, requiring fewer mechanisms than direct approaches.
Findings
Successfully tested bindings between Go, Python3.11, and Java.
Reduces interoperability mechanisms from n^2 to 2n for n languages.
Demonstrated cross-platform functionality on Windows and Ubuntu.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsService-Oriented Architecture and Web Services · Semantic Web and Ontologies · Natural Language Processing Techniques
