puffin 0.19.1

Simple instrumentation profiler for games
Documentation
[package]
name = "puffin"
version = "0.19.1"
authors = ["Embark <opensource@embark-studios.com>"]
categories = ["development-tools::profiling"]
description = "Simple instrumentation profiler for games"
edition.workspace = true
homepage = "https://github.com/EmbarkStudios/puffin"
keywords = ["profiler", "instrumentation", "gamedev"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/EmbarkStudios/puffin"
rust-version.workspace = true
include = ["**/*.rs", "Cargo.toml", "README.md", "../puffin.jpg"]

[package.metadata.docs.rs]
all-features = true


[features]
default = []
packing = ["dep:bincode", "lz4", "serde"]

# Support lz4 compression. Fast, and lightweight dependency.
# If both `lz4` and `zstd` are enabled, lz4 will be used for compression.
lz4 = ["dep:lz4_flex"]

# Support zstd compression. Slow and big dependency, but very good compression ratio.
zstd = ["dep:zstd", "dep:ruzstd"]

# Feature for enabling loading/saving data to a binary stream and/or file.
serialization = ["packing"]

# Enable this to be able to run puffin inside a browser when compiling to wasm
web = ["dep:js-sys", "dep:web-time"]


[dependencies]
byteorder = { version = "1.0" }
cfg-if = "1.0"
itertools = "0.10"
once_cell = "1.0"
parking_lot = { version = "0.12"}

# Optional:
anyhow = { version = "1.0" }
bincode = { version = "1.3", optional = true }
lz4_flex = { version = "0.11", optional = true, default-features = false }
serde = { version = "1.0", features = ["derive", "rc"], optional = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
zstd = { version = "0.12.3", optional = true } # native only

# web:
[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = { version = "0.3", optional = true }
ruzstd = { version = "0.4.0", optional = true } # works on wasm
web-time = { version = "0.2", optional = true }


[dev-dependencies]
criterion = "0.5"

[[bench]]
name = "benchmark"
harness = false