#plugin-api #javy #namespaces #config #js

javy-plugin-api

APIs for Javy plugins

2 stable releases

2.0.0 Nov 27, 2024
1.0.0 Nov 12, 2024

#1224 in WebAssembly

Download history 127/week @ 2024-11-11 72/week @ 2024-11-18 289/week @ 2024-11-25 28/week @ 2024-12-02 24/week @ 2024-12-09

417 downloads per month

Apache-2.0 WITH LLVM-exception

130KB
3K 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::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
~281K SLoC