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
GSoC Proposal: Implementing a Plugin Development Kit for Tremor

GSoC Proposal: Implementing a Plugin Development Kit for Tremor

Abstract This Google Summer of Code project consists on developing a universal interface for Tremor plugins[1], allowing said library to become more modular and reduce the core set of dependencies. This will achieve a considerably reduced core size for Tremor, meaning that the library will be faster to compile and have a smaller binary size. Most importantly, it will transform Tremor’s architecture to be completely modular, where plugins can be configured as needed and developed independently, in a language-agnostic way....

April 13, 2021 · 10 min · Mario Ortiz Manero
Optional parameters in Rust

Optional parameters in Rust

Optional or default parameters are a very interesting feature of some languages that Rust specifically doesn’t cover (and looks like it won’t anytime soon ). Say your library has lots of endpoints like so: fn endpoint<T1, T2, T3, ...>(mandatory: T1, opt1: Option<T2>, opt2: Option<T3>, ...); In this case, when you call endpoint, you have to use endpoint(mandatory, None, None, ...), or endpoint(mandatory, Some(val1), Some(val2), ...), instead of the more intuitive endpoint(mandatory) or endpoint(mandatory, val1, val2)....

October 10, 2020 · 11 min · Mario Ortiz Manero