[package] name = "tf-demo-parser" version = "0.7.0" edition = "2024" rust-version = "1.94.0" description = "parser for tf2 demo files" repository = "https://codeberg.org/demostf/parser" license = "MIT OR Apache-2.0" exclude = ["test_data", "tests/fuzz"] default-run = "parse_demo" [lib] name = "tf_demo_parser" path = "src/lib.rs" [[bin]] name = "parse_demo" path = "src/bin/main.rs" [[bin]] name = "reencode_demo" path = "src/bin/reencode.rs" required-features = ["write"] [[bin]] name = "gamestate" path = "src/bin/gamestate.rs" [[bin]] name = "schema" path = "src/bin/schema.rs" required-features = ["schema"] [[bin]] name = "codegen" path = "src/bin/codegen.rs" required-features = ["codegen"] [[bin]] name = "strings" path = "src/bin/strings.rs" [[bin]] name = "direct_hits" path = "src/bin/direct_hits.rs" [[bench]] harness = false name = "parse" [dependencies] better-panic = { version = "0.3.0", optional = true } bitbuffer = { version = "0.11.3", features = ["serde"] } const-fnv1a-hash = "1.1.0" enumflags2 = { version = "0.7.12", features = ["serde"] } fnv = "1.0.7" itertools = "0.15.0" jemallocator = { version = "0.5.4", optional = true } main_error = "0.1.2" num_enum = "0.7.6" num-traits = "0.2.19" parse-display = "0.11.0" serde = { version = "1.0.229", features = ["derive", "rc"] } serde_json = "1.0.151" serde_repr = "0.1.21" snap = "1.1.2" thiserror = "2.0.20" tracing = { version = "0.1.44", optional = true } tracing-subscriber = { version = "0.3.23", features = ["env-filter"], optional = true } # schema schemars = { version = "1.2.2", optional = true } Inflector = { version = "0.11", default-features = false, optional = true } lazy_static = { version = "1", optional = true } prettyplease = { version = "0.3", optional = true } proc-macro2 = { version = "1", optional = true } # codegen quote = { version = "1", optional = true } syn = { version = "3", features = ["full"], optional = true } tempfile = { version = "3", optional = true } log = { version = "0.4.34", features = [] } [dev-dependencies] iai-callgrind = "0.16.1" insta = { version = "1.48.0", features = ["json"] } pretty_assertions = "1.4.1" test-case = "3.3.1" [features] codegen = [ "Inflector", "better-panic", "lazy_static", "prettyplease", "proc-macro2", "quote", "syn", "tempfile" ] schema = ["bitbuffer/schemars_1", "schemars"] trace = ["tracing", "tracing-subscriber"] write = [] [profile.bench] debug = true [profile.dev] opt-level = 2 [profile.release] lto = "thin"