#plugin-api #javy #namespaces #js

javy-plugin-api

APIs for Javy plugins

1 stable release

1.0.0 Nov 12, 2024

#1473 in WebAssembly

Download history 123/week @ 2024-11-10 73/week @ 2024-11-17

196 downloads per month

Apache-2.0 WITH LLVM-exception

130KB
2.5K SLoC

javy-plugin-api

A crate for creating Javy plugins

Documentation Status crates.io status

Refer to the crate level documentation to learn more.

Example usage:

use javy_plugin_api::import_namespace;
use javy_plugin_api::javy::Config;

// Dynamically linked modules will use `my_javy_plugin_v1` as the import
// namespace.
import_namespace!("my_javy_plugin_v1");

#[export_name = "initialize_runtime"]
pub extern "C" fn initialize_runtime() {
    let mut config = Config::default();
    config
        .text_encoding(true)
        .javy_stream_io(true);

    javy_plugin_api::initialize_runtime(config, |runtime| runtime).unwrap();
}

Publishing to crates.io

To publish this crate to crates.io, run ./publish.sh.

Dependencies

~8–12MB
~279K SLoC