[package] name = "ruffle_web" description = "Web (WASM) bindings to the Ruffle flash player" authors.workspace = true edition.workspace = true homepage.workspace = true license.workspace = true repository.workspace = true version.workspace = true publish = false # This crate is useless alone, people should use the npm package [lints] workspace = true [lib] crate-type = ["cdylib", "rlib"] [features] default = ["canvas", "console_error_panic_hook", "webgl", "wgpu-webgl", "webgpu"] # core features avm_debug = ["ruffle_core/avm_debug"] lzma = ["ruffle_core/lzma"] jpegxr = ["ruffle_core/jpegxr"] # web features canvas = ["ruffle_render_canvas"] webgl = ["ruffle_render_webgl"] webgpu = ["ruffle_render_wgpu"] wgpu-webgl = ["ruffle_render_wgpu", "ruffle_render_wgpu/webgl"] profiling = [] [dependencies] console_error_panic_hook = { version = "0.1.7", optional = true } slotmap = { workspace = true } js-sys = { workspace = true } tracing = { workspace = true, features = ["log"] } tracing-subscriber = { version = "0.3.18", default-features = false, features = ["registry"] } tracing-log = "0.2.0" tracing-wasm = "0.2.1" ruffle_render_canvas = { path = "../render/canvas", optional = true } ruffle_web_common = { path = "common" } ruffle_render = { path = "../render" } ruffle_render_webgl = { path = "../render/webgl", optional = true } ruffle_render_wgpu = { path = "../render/wgpu", optional = true } ruffle_video_software = { path = "../video/software" } url = { workspace = true } wasm-bindgen = { workspace = true } wasm-bindgen-futures = "0.4.42" serde-wasm-bindgen = "0.6.5" chrono = { workspace = true, features = ["wasmbind", "clock"] } getrandom = { version = "0.2", features = ["js"] } serde = { workspace = true, features = ["derive"] } thiserror = { workspace = true } base64 = "0.22.0" async-channel = { workspace = true } futures-util = { version = "0.3.30", features = ["sink"] } gloo-net = { version = "0.5.0", default-features = false, features = ["websocket"] } rfd = { version = "0.14.1", features = ["file-handle-inner"] } wasm-streams = "0.4.0" futures = { workspace = true } [dependencies.ruffle_core] path = "../core" features = ["audio", "mp3", "nellymoser", "default_compatibility_rules", "default_font"] [dependencies.web-sys] version = "0.3.69" features = [ "AddEventListenerOptions", "AudioBuffer", "AudioBufferSourceNode", "AudioContext", "AudioDestinationNode", "AudioNode", "AudioParam", "Blob", "BlobPropertyBag", "ChannelMergerNode", "ChannelSplitterNode", "ClipboardEvent", "DataTransfer", "Element", "Event", "EventTarget", "GainNode", "Headers", "HtmlCanvasElement", "HtmlDocument", "HtmlElement", "HtmlFormElement", "HtmlInputElement", "HtmlTextAreaElement", "KeyboardEvent", "Location", "PointerEvent", "Request", "RequestInit", "Response", "Storage", "WheelEvent", "Window", "ReadableStream", "RequestCredentials" ] [package.metadata.cargo-machete] ignored = [ # Not used directly, declared only to enable its `js` feature. "getrandom" ]