Plugin management library featuring automatic caching of local and remote binaries, cross-platform automatic url guessing, deno_plugin_prepare backwards compatibility and pretty deno-like logging when caching and downloading binaries.
鈿狅笍 Plugins in deno are unstable and undergoing BREAKING CHANGES. This library aims to follow changes to deno as closly as possible.
import { Plug } from "https://deno.land/x/plug/mod.ts";
// Backwards compatibility with deno-plugin-prepare
const options: Plug.Options = {
name: "test_plugin",
urls: {
darwin: `https://example.com/some/path/libtest_plugin.dylib`,
windows: `https://example.com/some/path/test_plugin.dll`,
linux: `https://example.com/some/path/libtest_plugin.so`,
},
};
// Or if you want plug to guess your binary names
const options: Plug.Options = {
name: "test_plugin",
url: "https://example.com/some/path/",
// Becomes:
// darwin: "https://example.com/some/path/libtest_plugin.dylib"
// windows: "https://example.com/some/path/test_plugin.dll"
// linux: "https://example.com/some/path/libtest_plugin.so"
};
const rid = await Plug.prepare(options);
const response = Plug.core.opSync<string>(
"op_test_sync",
{ val: "1" },
new Uint8Array([116, 101, 115, 116]),
);
- deno_plugin_prepare - A library for managing deno native plugin dependencies
- cache - Deno cache library
Pull request, issues and feedback are very welcome. Code style is formatted with
deno fmt
and commit messages are done following Conventional Commits spec.
Copyright 2020-2021, the denosaurs team. All rights reserved. MIT license.