1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[]
= "pebble-engine"
= "0.24.2"
= "2024"
= "MIT OR Apache-2.0"
= "A modular, ECS-style graphics/app framework for Rust."
= "https://github.com/Akihiro120/pebble"
= "Readme.md"
= ["graphics", "ecs", "gamedev"]
= ["graphics", "game-engines"]
[]
= "pebble"
[]
= "0.11.0"
= "1.1.1"
= "0.6"
= "0.1"
= "0.1"
= { = "29.0.3", = ["spirv", "fragile-send-sync-non-atomic-wasm"] }
= "0.5"
= "0.16"
= "0.29"
= "1.0.1"
= { = "1.25.2", = ["derive"] }
= { = "0.32", = ["bytemuck"] }
= "0.25.10"
= { = "2.4", = ["bytemuck"] }
# glTF 2.0 geometry/skeleton/animation parsing for wgpu::gltf_loader::load_gltf.
# "import" resolves .bin/base64 buffers (pulls in base64/image/urlencoding —
# image is already a direct dependency here, so this mostly unifies rather
# than adding weight). "utils" gives the typed accessor Reader API used to
# read positions/normals/joints/weights/keyframes. "names" gives joint/node
# names for Skeleton::joint_index_by_name. No KHR_materials_*/lights/extras
# features enabled — this crate never reads glTF materials or textures.
# Unconditional dependency (not feature-gated like `profiler`) — model
# loading is a core capability of this engine, not a niche add-on.
= { = "1.4.1", = false, = ["import", "utils", "names"] }
# Gamepad polling — see `gamepad` module, always available (like `time`).
# Requires `libudev-dev` on Linux to compile.
= "0.11"
# Audio playback — see `audio` module, always available (like `time`). No
# wasm32 support (a known gap — see the `audio` module's own doc comment).
# Requires ALSA dev headers on Linux (pulled in transitively via cpal).
= "0.22"
= { = "0.35", = true, = false }
= { = "0.35", = true, = false }
# Drop-in `Instant`/`Duration` that works correctly on wasm32-unknown-unknown
# (via `performance.now()`) as well as native — unlike `std::time::Instant`,
# whose wasm32 support depends on how the final binary is linked. Used by
# `time::TimePlugin` (always available) and `wgpu::profiler` (feature-gated);
# already present transitively via `wgpu` itself, so depending on it directly
# and unconditionally is free.
= "1.1"
[]
# Opt-in CPU frame-timing/telemetry plugin with an egui-rendered overlay —
# see `wgpu::profiler`. Off by default so egui isn't pulled into every
# consumer's build; enable with `pebble-engine = { version = "...", features = ["profiler"] }`.
= ["dep:egui", "dep:egui-wgpu"]
[]
= { = "0.3", = ["Document", "Window", "HtmlCanvasElement", "EventTarget"] }
= "0.2"
= "0.4"
= "0.1"