ruffle/core/Cargo.toml

90 lines
2.9 KiB
TOML
Raw Normal View History

2019-04-28 01:15:43 +00:00
[package]
2019-05-08 16:46:19 +00:00
name = "ruffle_core"
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
version.workspace = true
2019-04-28 01:15:43 +00:00
[lints]
workspace = true
2019-04-28 01:15:43 +00:00
[dependencies]
linkme = { version = "0.3", optional = true }
2023-10-09 21:59:27 +00:00
byteorder = "1.5"
2023-12-18 06:16:34 +00:00
bitstream-io = "2.2.0"
2023-10-16 00:51:05 +00:00
flate2 = "1.0.28"
fnv = "1.0.7"
gc-arena = { package = "ruffle_gc_arena", path = "../ruffle_gc_arena" }
generational-arena = "0.2.9"
2023-10-31 22:01:51 +00:00
indexmap = "2.1.0"
tracing = { workspace = true }
ruffle_render = { path = "../render", features = ["tessellator"] }
ruffle_video = { path = "../video" }
ruffle_macros = { path = "macros" }
ruffle_wstr = { path = "../wstr" }
swf = { path = "../swf" }
2023-10-16 00:51:05 +00:00
bitflags = "2.4.1"
2023-11-13 00:25:49 +00:00
smallvec = { version = "1.11.2", features = ["union"] }
2021-06-05 12:41:05 +00:00
num-traits = "0.2"
num-derive = "0.4"
2023-10-31 22:01:51 +00:00
quick-xml = "0.31.0"
downcast-rs = "1.2.0"
2023-11-27 01:12:39 +00:00
url = "2.5.0"
weak-table = "0.3.2"
2023-11-27 01:12:39 +00:00
percent-encoding = "2.3.1"
thiserror = "1.0"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
2023-12-25 06:27:55 +00:00
web-time = "0.2.4"
2023-08-28 01:21:01 +00:00
encoding_rs = "0.8.33"
rand = { version = "0.8.5", features = ["std", "small_rng"], default-features = false }
2024-01-08 01:33:37 +00:00
serde = { version = "1.0.195", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
nellymoser-rs = { git = "https://github.com/ruffle-rs/nellymoser", rev = "4a33521c29a918950df8ae9fe07e527ac65553f5", optional = true }
2023-08-28 01:21:01 +00:00
regress = "0.7"
flash-lso = { git = "https://github.com/ruffle-rs/rust-flash-lso", rev = "2f976fb15b30aa4c5cb398710dc5e31a21004e57" }
2023-01-10 15:16:37 +00:00
lzma-rs = {version = "0.3.0", optional = true }
dasp = { version = "0.11.0", features = ["interpolate", "interpolate-linear", "signal"], optional = true }
symphonia = { version = "0.5.3", default-features = false, features = ["mp3"], optional = true }
2023-10-16 00:51:05 +00:00
enumset = "1.1.3"
2023-09-17 21:06:56 +00:00
bytemuck = "1.14.0"
2024-01-08 01:33:37 +00:00
clap = { version = "4.4.13", features = ["derive"], optional=true }
realfft = "3.3.0"
2023-11-27 01:12:39 +00:00
hashbrown = { version = "0.14.3", features = ["raw"] }
scopeguard = "1.2.0"
2023-04-21 23:44:01 +00:00
fluent-templates = "0.8.0"
egui = { workspace = true, optional = true }
2023-12-18 06:16:34 +00:00
egui_extras = { version = "0.24.2", optional = true }
2023-08-18 20:49:40 +00:00
png = { version = "0.17.10", optional = true }
2023-04-16 00:10:02 +00:00
flv-rs = { path = "../flv" }
2023-11-27 01:12:39 +00:00
async-channel = "2.1.1"
jpegxr = { git = "https://github.com/ruffle-rs/jpegxr", branch = "ruffle", optional = true }
image = { version = "0.24.7", default-features = false, features = ["tiff", "dxt"] }
avm2: Implement AIR playerglobal versioning This builds on our existing playerglobal versioning support to add in AIR versioning. We closely follow the avmplus implementation: * When an SWF is loaded, we chose either a FlashPlayer or AIR APIVersion for its SWF version, based on our configured player runtime. * When loading playerglobals, we look at the player runtime. In AIR mode, we map FlashPlayer-versioned definitions to the closest AIR version. This ensures that all runtime APIVersions are in the same series (either AIR or FlashPlayer). In FlashPlayer mode, all AIR-versioned definitions get mapped to VM_INTERNAL, hiding them from user code. Part of our existing api versioning code was implemented incorrectly. Within playerglobals, we need to treat all unmarked namespaces as VM_INTERNAL - this allows things like playerglobal script initializer "initproperty" opcodes to see any VM_INTERNAL AIR definitions (when we run under FlashPlayer mode). Previously, we were using AllVersions, which would result in those VM_INTERNAL definitions being hidden from other playerglobal code, which is not correct. Using this support, I've added a stub for the AIR-only 'flash.net.DatagramSocket'. I've also extended the test framework with a new 'player_options.runtime' config option, which can be set to "AIR" or "FlashPlayer" to configure the test runtime mode. I've also added two new tests: * 'air_hidden_lookup' runs under the FlashPlayer runtime, and verifies that a list of classes (currently just "DatagramSocket" are inacessible). * 'air_datagram_socket', which uses `player_options.runtime = "AIR"` to construct an instance of `flash.net.DatagramSocket`. We can extend this test once we implement more of `DatagramSocket` With this commit, we have all of the needed infrastructure to start implementing and testing AIR-only classes and methods.
2023-11-26 00:19:44 +00:00
enum-map = "2.7.3"
ttf-parser = "0.20"
2019-07-19 08:32:41 +00:00
[target.'cfg(not(target_family = "wasm"))'.dependencies.futures]
2023-12-25 06:27:55 +00:00
version = "0.3.30"
[target.'cfg(target_family = "wasm")'.dependencies.wasm-bindgen-futures]
2024-01-15 21:12:41 +00:00
version = "0.4.40"
2019-07-19 08:32:41 +00:00
[features]
default = []
2021-06-22 08:26:27 +00:00
lzma = ["lzma-rs", "swf/lzma"]
avm_debug = []
deterministic = []
timeline_debug = []
2022-09-07 18:44:12 +00:00
mp3 = ["symphonia"]
nellymoser = ["nellymoser-rs"]
audio = ["dasp"]
known_stubs = ["linkme"]
default_compatibility_rules = []
2023-06-07 21:31:44 +00:00
egui = ["dep:egui", "dep:egui_extras", "png"]
jpegxr = ["dep:jpegxr", "lzma"]
default_font = []
[build-dependencies]
build_playerglobal = { path = "build_playerglobal" }