#bevy-plugin #url #assets #javascript #serialization #plugin-for-loading #file-extension

bevy_blob_loader

Bevy plugin for loading assets from JavaScript blob URLs

11 releases

Uses new Rust 2024

new 0.2.2 Nov 25, 2025
0.2.1 Nov 25, 2025
0.1.1 Jun 20, 2025
0.0.6 Aug 20, 2024
0.0.3 Jan 3, 2024

#1295 in Game dev


Used in bevy_web_file_drop

MIT/Apache

44KB
155 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

~27–42MB
~701K SLoC