Create extensions in any language.
https://salamatrix.samandarin.net/
---------------------------------
I would like to introduce Salamatrix, a new framework for developing extensions for Open Salamander without requiring every extension to be implemented as a native C++ plugin.
A Salamatrix extension is a small package containing a manifest, its source code and optional resources such as icons or dialog definitions. The manifest describes the extension and the features it contributes; Salamander then loads it through the appropriate runtime and integrates those features into the application.
Supported runtimes
- JavaScript / Node.js
- Python
- PowerShell
- PHP
- Lua
- Automation JScript and VBScript
Framework capabilities
Salamatrix extensions can contribute several different types of functionality:
- Commands and menus — add actions to Salamander menus, including icons, states and submenus.
- Toolbars — provide toolbar buttons and actions integrated with the main window.
- Native user interfaces — create dialogs using native Salamander-style controls, hyperlinks, progress bars, color controls, toolbar headers and other UI components.
- Long-running operations — report progress and detailed status, support cancellation and keep the application responsive.
- File viewers — register viewers with their own names and file-mask associations.
- Virtual file systems — display extension-provided objects directly in Salamander panels, with navigation, icons and context-menu actions.
- Configuration and host services — store settings and communicate with Salamander through a shared framework API.
- Lifecycle management — use a consistent model for loading, registration, configuration changes and shutdown.
The framework owns the integration with Salamander, while individual runtimes translate the same operations into language-appropriate APIs. Demo extensions are available for every supported runtime and demonstrate menus, dialogs, progress reporting, viewers and virtual file systems.
Salamatrix Studio
Salamatrix Studio is a Visual Studio Code add-on for creating and maintaining Salamatrix projects.
It includes:
- New extension project creation
- Visual manifest editor
- Menu builder
- Native dialog UI designer
- Native preview host
- Runtime-specific code generation
- Templates and example projects
Salamatrix does not replace the existing native plugin API. Its purpose is to complement it: native C++ remains available where it is the appropriate solution, while Salamatrix makes smaller, specialized and rapidly developed extensions practical for a much wider group of developers.
More information:
Salamatrix website and documentation
Salamatrix Studio for Visual Studio Code