#bevy-plugin #assets #blob #web #url #loading #wasm-bindgen

bevy_blob_loader

Bevy plugin for loading assets from JavaScript blob URLs

6 releases

0.0.6 Aug 20, 2024
0.0.5 Jul 9, 2024
0.0.4 Mar 6, 2024
0.0.3 Jan 3, 2024

#2280 in Game dev

Download history 4/week @ 2024-11-13 10/week @ 2024-11-20 8/week @ 2024-11-27 13/week @ 2024-12-04 25/week @ 2024-12-11 8/week @ 2024-12-18 5/week @ 2025-01-15 6/week @ 2025-01-22 8/week @ 2025-01-29 27/week @ 2025-02-05 27/week @ 2025-02-12 18/week @ 2025-02-26

74 downloads per month
Used in bevy_web_file_drop

MIT/Apache

10KB
139 lines

bevy_blob_loader

Bevy plugin for loading assets from JavaScript blob URLs. Should only be added when targeting the web, otherwise wasm-bindgen will panic.


lib.rs:

This crate provides a Bevy plugin for loading assets from JavaScript blob URLs. This is useful for taking input from the user within a browser, such as a file upload or drag-and-drop.

Usage

After adding [BlobLoaderPlugin] to your Bevy app, you can load assets from blob URLs like so:

use bevy::prelude::*;
use bevy_blob_loader::path::serialize_url;

fn my_system(asset_server: Res<AssetServer>) {
  let blob_url = "blob:http://example.com/1234-5678-9012-3456";

  // Note, we have to serialize the URL into a special format for Bevy to recognize it.
  // This takes in the file extension of the asset, which Bevy uses to determine how to
  // process the fetched asset.
  let serialized = serialize_url(&blob_url, "png");

  let handle: Handle<Image> = asset_server.load(serialized);
}

Dependencies

~33MB
~625K SLoC