Skip to content

Torii Plugin for Bevy WASM #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

elton-cs
Copy link

Heyo!

Modified the Torii plugin to work on wasm using Bevy Async Tasks as opposed to using an external Tokio runtime.

Check it out and let's have some discussion on this.

Things to note:

  1. Tokio implementation works on native, not wasm
  2. Bevy Tasks implementation works on wasm, not native (-_-)

This seems to be because Torii's implementation requires a Tokio runtime when compiling to native (probably because of the cfg directives). This may be a larger refactor to get both builds to use the exact same plugin implementation but not sure, would like some thoughts on this @glihm

Fortunately, they BOTH do work, so projects can use either depending on their build, just need to add/remove Tokio dep and import the appropriate plugin.

@glihm
Copy link
Contributor

glihm commented Jun 30, 2025

Thank you @elton-cs for the work here!

As mentioned before in discord, it will be worthy trying to have everything with tokio, since it will be only one impl with just some conditional compilation flags.

In the meantime, we could put each version of the plugin under a feature to be enabled based on the configuration that the user is attempting to use. Since the API will remain the same, it will then be possible to choose the plugin version based on the target.

If you are willing to work on that, let's add a module with the stuff that is target independent, and conditionally include the plugin_native.rs or the plugin_wasm.rs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants