Rosetta Framework

Rosetta Framework
Photo by Shubham Dhage / Unsplash

Several times throughout my experience learning new programming languages, I've thought to myself "I know how to do this in X language". And while it is better to learn the proper techniques for the language you're using, sometimes it's not an option.

Many libraries out there require specific languages in order to be used. This may be due to needing a feature that the language provides, or not having a big enough community to port the library to more languages. Additionally, most applications that support plugins need them to be in a specific language.

These constraints are the founding idea behind the Rosetta Framework. In essence, the Rosetta Framework is a way of supporting interactions between languages. However, it acts in a very special way.

Rosetta Framework is not a translator. It doesn't convert your code to any other language, as that would be difficult to accomplish and would jeopardise many features that make the Rosetta Framework unique.

Instead, Rosetta Framework acts as a universe FFI (foreign function interface). It facilitates function calls between languages, routing and transforming the requests through the network virtualised by the Framework.

A fun example used internally by DeepCore is the matter of Minecraft world generation. Currently, on a relatively powerful computer, it takes at least a couple of seconds to a minute to generate the spawn area. Using the Rosetta Framework, however, it would be possible to implement this world-generation program in C, C++ or Rust, and greatly increase its performance.

Unfortunately, Rosetta Framework is in the early stages of development, so no viable version has been created for public use. However, when one becomes available, it will be announced on this platform.