Plugins in Rust: Reducing the Pain with Dependencies

Plugins in Rust: Reducing the Pain with Dependencies

The last article of this series covered how the plugin system could be implemented from scratch. This is a lot of work if you’re dealing with a relatively large codebase and therefore a complex interface in your plugin system, so let’s see how we can make our lives easier. I’ve been wanting to try abi_stable for this since the beginning, which was specifically created for plugins. But we aren’t really locked to that crate, so I’ll show other alternatives as well, which can even be combined to your liking....

November 8, 2021 · 28 min · Mario Ortiz Manero
Plugins in Rust: Diving into Dynamic Loading

Plugins in Rust: Diving into Dynamic Loading

In the last part of this series I wrote some simple experiments of plugins both with WebAssembly and dynamic loading. After discarding Wasm for this specific PDK, I wanted to try to get a more realistic example with dynamic loading and work towards the final implementation. Since the Tremor team suggested to begin by implementing connectors, we’ll first have to learn more about them. Matthias ran me through their current state in a meeting, which I’ll try to summarize....

October 5, 2021 · 27 min · Mario Ortiz Manero
Plugins in Rust: Getting Started

Plugins in Rust: Getting Started

Welcome to my second article about Plugins in Rust! Here I will try to actually write some simple code of what a PDK (Plugin Development Kit) might look like, and also do some research about questions that arise while doing so. Please note that this is a series of posts, so you might be interested in reading the previous ones for context. Some probably weren’t expecting me to continue the series, as in the last article I wrote that Google didn’t end up allocating a slot for my project (as this was initially going to be for the Google Summer of Code)....

September 5, 2021 · 20 min · Mario Ortiz Manero
Plugins in Rust: The Technologies

Plugins in Rust: The Technologies

In this first article I will further analyze how a Plugin Development Kit (PDK) could be implemented in Rust. Note that I’m no expert in the topic; my objective is to merely collect all the information I’ve found so far and present it as a summary, with enough resources for the reader to learn more on their own and make their own decisions. 1. The Problem This is actually part of my Google Summer of Code project for Tremor....

May 17, 2021 · 22 min · Mario Ortiz Manero