Providers in Mashin are similar to Terraform providers and are implemented as Rust plugins.
These plugins extend the engine's functionality and allow it to interact with various infrastructure resources. Providers are compiled to cdylib, which enables dynamic library loading on different operating systems (such as
.dll on Windows and
.so on macOS/Linux).
Mashin leverages proc-macros and an embedded domain-specific language (eDSL) to simplify the development of providers.
Developers can create a new provider by defining a rust library with the necessary structures and implementations, such as the provider configuration, state, and resource management functions.
import * as myProvider from "https://mashin.land/myProvider/mod.ts";
/// provider name
/// provider configuration
All types are generated from the Rust structures, ensuring that validation, autocompletion, and overall development experience are seamless and efficient.