[package]
name = "matchbox_socket"
version = "0.9.0"
authors = ["Johan Helsing <johanhelsing@gmail.com>"]
description = "Painless WebRTC peer-to-peer full-mesh networking socket"
edition = "2021"
license = "MIT OR Apache-2.0"
keywords = ["gamedev", "webrtc", "peer-to-peer", "networking", "wasm"]
categories = [
"network-programming",
"game-development",
"wasm",
"web-programming",
]
repository = "https://github.com/johanhelsing/matchbox"
[features]
ggrs = ["dep:bincode", "dep:ggrs"]
[dependencies]
matchbox_protocol = { version = "0.9", path = "../matchbox_protocol", default-features = false }
futures-channel = { version = "0.3", default-features = false, features = [
"sink",
] }
futures = { version = "0.3", default-features = false }
futures-timer = { version = "3.0", default-features = false }
futures-util = { version = "0.3", default-features = false, features = [
"sink",
"async-await-macro",
"channel",
] }
serde = { version = "1.0", default-features = false, features = ["derive"] }
serde_json = { version = "1.0", default-features = false, features = ["alloc"] }
log = { version = "0.4", default-features = false }
thiserror = "1.0"
cfg-if = "1.0"
async-trait = "0.1"
once_cell = { version = "1.17", default-features = false, features = [
"race",
"alloc",
] }
derive_more = "0.99"
ggrs = { version = "0.10", default-features = false, optional = true }
bincode = { version = "1.3", default-features = false, optional = true }
[target.'cfg(target_arch = "wasm32")'.dependencies]
ggrs = { version = "0.10", default-features = false, optional = true, features = [
"wasm-bindgen",
] }
ws_stream_wasm = { version = "0.7", default-features = false }
wasm-bindgen-futures = { version = "0.4", default-features = false }
wasm-bindgen = { version = "0.2", default-features = false, features = [
"serde-serialize",
] }
futures-timer = { version = "3.0", default-features = false, features = [
"wasm-bindgen",
] }
js-sys = { version = "0.3", default-features = false }
web-sys = { version = "0.3.22", default-features = false, features = [
"MessageEvent",
"RtcConfiguration",
"RtcDataChannel",
"RtcDataChannelInit",
"RtcDataChannelType",
"RtcIceCandidate",
"RtcIceCandidateInit",
"RtcIceConnectionState",
"RtcIceGatheringState",
"RtcPeerConnection",
"RtcPeerConnectionIceEvent",
"RtcSdpType",
"RtcSessionDescription",
"RtcSessionDescriptionInit",
] }
serde-wasm-bindgen = "0.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
async-tungstenite = { version = "0.25", default-features = false, features = [
"async-std-runtime",
"async-tls",
] }
webrtc = { version = "0.10", default-features = false }
bytes = { version = "1.1", default-features = false }
async-compat = { version = "0.2", default-features = false }
[dev-dependencies]
futures-test = "0.3"