PION
? What is PION?
PION is an acronym for
Plug-In Over Network.
It is a paradigm for creating cross-platform plug-ins.
Most audio, video, and image editing software support adding additional features and effects by using plug-ins.
Usually these plug-ins need to be redeveloped for a specific platform such as Windows, Mac, Linux, Android, or iOS. Mobile platforms
have many restrictions and technical challenges making traditional plug-ins impossible or
needlessly complicated to develop. The PION paradigm is a way to develop plug-ins that can be used on
every platform, are simple to make, have little administrative overhead, and can approach native performance.
⚙ How does it work?
Plug-ins are developed using the latest web technology (primarily HTML and JavaScript or Web Assembly) and are hosted in a web browser.
The host app interacts with the plug-in through the local network. Here are the steps for hosting a plug-in:
- The host app creates an embedded web browser or web view (an external browser could be used as well).
- The host app creates a simple TCP server on 127.0.0.1 or ::1 (localhost) on an available port.
- The host app directs the web view to navigate to the plug-in's URL, appending the port number as a parameter (if not the default port), such as:
https://domain.com/plugin.html?port=7065
- The plug-in opens a WebSocket to 127.0.0.1 or ::1 (localhost) on the port provided (or the default port).
- The host and plug-in communicate through this connection to exchange information through JSON or raw data.
Ideally standard protocols would be defined for audio, video, and image processing. Multiple plug-ins could be hosted
in multiple webviews or HTML iframe elements on different ports.
+ What are the advantages?
PION has many advantages over traditional plug-in development:
- Cross-platform by design: create the plug-in once, use it on every platform.
- Faster iterative development process: just edit the HTML file and reload the effect in the host to test it.
- Potentially near native performance and support for existing C/C++ code with Web Assembly.
- No or little administrative overhead and cost: no platform account required, such as Apple Developer or Google Play
and no development tools to purchase, download, install, and maintain.
- Avoids excessively restrictive platform policies: no approval from Apple, Google or Microsoft required .
- Simple deployment: just upload to a cloud server or website and share!
- Very simple for end-users to install: just enter or copy/paste a URL (host program could search and present a list)!
- What are the disadvantages?
- Hosting is more complicated, requiring an embedded browser. However that is well supported on Android and iOS, and now on Windows with the recent Edge update.
- A constant network connection may be required. However local "file:///" and cacheable plug-ins are supported.
- Performance is decreased due to network overhead and no direct access to frame buffer memory.
! Where can I see it in action?
PION is in beta testing in the
GoldWave Audio Editor. Use
Options | Plug-in | Effect | Plug-in Over Network to
add plug-ins. Use the following links to add PION effects to GoldWave. Note that the new
Chromium Edge browser is required to host the plug-ins and the Edge
SDK is still in beta testing, so things may not work when the Edge browser is updated (currently the January 2020 version 80.0.361.62 is required).
- https://goldwave.com/pion/echo.html
- https://goldwave.com/pion/mix.html
- https://goldwave.com/pion/scan.html
Plug-in Over Network, PION, PIONAPI and PION logo are trademarks of GoldWave Inc.