Stream: git-wasmtime

Topic: wasmtime / issue #10090 Option to Generate Unused Types w...


view this post on Zulip Wasmtime GitHub notifications bot (Jan 23 2025 at 13:00):

AmmarAbouZor opened issue #10090:

Hi, first of all, I want to thank you all for the great work and effort you’ve put into this project.

Feature Request

It would be incredibly helpful to have the option to generate unused types when using the wasmtime::component::bindgen!() macro, similar to the functionality provided by the wit_bindgen::generate!() macro.
I’ve included a code example below to illustrate the desired functionality:

WIT File:

package example:example;

interface types {
  record referenced-type {
    field: string
  }

  record no-ref-type {
    filed: string
  }

  fn: func(t: referenced-type);
}

world example {
  import types;
}

Code in Rust:

mod wsm {
    wasmtime::component::bindgen!({
        path: "wit",
        // NOTE: no equivalent for this option provided
        // generate_unused_types: true,
    });

    use self::example::example::types::{
        ReferencedType,
        // NoRefType: This type won't get generated
    };
}

mod wit {
    wit_bindgen::generate!({
        path: "wit",
        generate_unused_types: true,
    });

    use self::example::example::types::{NoRefType, ReferencedType};
}

Benefit

Generating unused types can be really useful when we aim to group shared types into a single package and generate them only once for use across multiple other packages.

Alternatives

The current workaround involves adding unused worlds, interfaces, or functions that reference the desired types, ensuring they are generated.


Last updated: Jan 24 2025 at 00:11 UTC