bevy-dlc-1.0.0 has been yanked.
Encrypt and ship DLC asset packs with offline-signed license tokens. Works with Bevy's asset pipeline.
Features
- Pack assets into encrypted
.dlcor.dlcpackcontainers - Sign licenses with Ed25519 (private key embeds the symmetric encryption key)
- Verify signatures at runtime and unlock encrypted content
- Lazy loading of labeled assets (e.g.
pack.dlcpack#sprites/player.png) - Product binding — prevent token reuse across games
Install
Add to your Cargo.toml:
= "0.1"
To use the CLI tool:
Then bevy-dlc --help for available commands.
Quick Start
Create a pack
--product— binds the pack to a product name (enforced byDlcManager)assets/expansion_1— directory of assets to packexpansion_1— DLC ID (used in licenses to unlock this pack)--pack— create a single encrypted archive (.dlcpack) instead of individual encrypted files-o expansion_1.dlcpack— output path for the pack (defaults to{dlc_id}.dlcpack)
This creates expansion_1.dlcpack and prints a signed license token.
Alternatively you can use bevy-dlc generate --help to review how to generate tokens without packing, or bevy-dlc validate --help to verify tokens.
[!NOTE]
bevy-dlc help <command>for detailed usage of each CLI command.
Load in your app
use *;
use *;
Load assets
Once unlocked, load assets from your pack like normal:
let pack: = asset_server.load;
let image: = asset_server.load;
Review real.rs for a complete example.
License
MIT