matchbox_socket 0.9.0

Painless WebRTC peer-to-peer full-mesh networking socket
Documentation
[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"