Developer Tools
vplugin
Finds plugins in a folder and calls them by one shared convention.
Released v1.0.0 · 2026-09-28use "stdlib/plugin.ven"
A plugin discovery and invocation convention, layered on top of the language's own module loading and the existing filesystem and process builtins, so a program can find and run a plugin from a known folder by a known naming convention. It is a convention built from existing pieces, not a new loading mechanism inside the language itself.
print PluginManifest("hello", "1.0.0", "A minimal example Venutian plugin.", "main.ven", "plugins/hello")
Reference (5 functions)
API reference
require_field(data, field_name, manifest_path)
Raises unless data has a field_name key.
data = new_map()
map_set(data, "name", "hello")
require_field(data, "name", "plugin.json")load_manifest(manifest_path, directory)
Parses and validates one plugin.json manifest into a PluginManifest.
load_manifest("plugins/hello/plugin.json", "plugins/hello")discover_plugins(plugins_dir)
Discovers every plugin under plugins_dir, as a List of PluginManifest.
manifests = discover_plugins("examples/plugins")
print manifests[0].describe()find_plugin(manifests, name)
Finds the PluginManifest in manifests whose name matches, or raises.
manifests = discover_plugins("examples/plugins")
print find_plugin(manifests, "hello").describe()run_plugin(manifest, runner, extra_args, timeout_ms = 15000)
Runs manifests entry file as a subprocess, and gives back its result.
manifests = discover_plugins("examples/plugins")
hello = find_plugin(manifests, "hello")
result = run_plugin(hello, ["./bin/venutian"], ["World"])
print result["stdout"]