Skip to content

Torii Plugin for Bevy WASM#2

Draft
elton-cs wants to merge 3 commits into
dojoengine:mainfrom
elton-cs:bevy-wasm-v1
Draft

Torii Plugin for Bevy WASM#2
elton-cs wants to merge 3 commits into
dojoengine:mainfrom
elton-cs:bevy-wasm-v1

Conversation

@elton-cs
Copy link
Copy Markdown

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
Copy Markdown
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