tycho-types 0.3.2

A set of primitive types and utilities for the Tycho node.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88"
name = "tycho-types"
version = "0.3.2"
authors = ["Ivan Kalinin <i.kalinin@dexpa.io>"]
build = false
include = [
    "src/**/*.rs",
    "benches/**/*.rs",
    "LICENSE-*",
    "README.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A set of primitive types and utilities for the Tycho node."
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/broxus/tycho-types"

[package.metadata.docs.rs]
features = [
    "base64",
    "serde",
    "models",
    "sync",
    "abi",
]

[features]
abi = [
    "dep:anyhow",
    "dep:bytes",
    "dep:ed25519-dalek",
    "bigint",
    "dep:serde",
    "models",
    "dep:tycho-types-abi-proc",
]
arbitrary = ["dep:arbitrary"]
bigint = [
    "dep:num-bigint",
    "dep:num-traits",
]
blake3 = ["dep:blake3"]
default = [
    "base64",
    "serde",
    "models",
    "sync",
]
models = [
    "dep:tycho-crypto",
    "dep:tl-proto",
]
rand8 = ["dep:rand8"]
rand9 = ["dep:rand9"]
rayon = [
    "sync",
    "dep:rayon",
    "blake3?/rayon",
    "dep:dashmap",
]
serde = [
    "dep:serde",
    "base64",
]
stats = []
sync = ["dep:scc"]
tycho = []

[lib]
name = "tycho_types"
path = "src/lib.rs"

[[bench]]
name = "big_cell"
path = "benches/big_cell.rs"
harness = false

[[bench]]
name = "boc"
path = "benches/boc.rs"
harness = false

[[bench]]
name = "callgrind_boc"
path = "benches/callgrind_boc.rs"
harness = false

[[bench]]
name = "callgrind_dict"
path = "benches/callgrind_dict.rs"
harness = false

[[bench]]
name = "callgrind_dict_from_slice"
path = "benches/callgrind_dict_from_slice.rs"
harness = false

[[bench]]
name = "callgrind_slice_uniform"
path = "benches/callgrind_slice_uniform.rs"
harness = false

[[bench]]
name = "callgrind_usage_cell"
path = "benches/callgrind_usage_cell.rs"
harness = false

[[bench]]
name = "dict"
path = "benches/dict.rs"
harness = false

[[bench]]
name = "dict_from_slice"
path = "benches/dict_from_slice.rs"
harness = false

[[bench]]
name = "dict_modify"
path = "benches/dict_modify.rs"
harness = false

[[bench]]
name = "dict_modify_aug"
path = "benches/dict_modify_aug.rs"
harness = false

[[bench]]
name = "mine"
path = "benches/mine.rs"
harness = false

[[bench]]
name = "slice_uniform"
path = "benches/slice_uniform.rs"
harness = false

[[bench]]
name = "usage_cell"
path = "benches/usage_cell.rs"
harness = false

[dependencies.ahash]
version = "0.8.11"

[dependencies.anyhow]
version = "1.0"
optional = true

[dependencies.arbitrary]
version = "1"
features = ["derive"]
optional = true

[dependencies.base64]
version = "0.22"
optional = true

[dependencies.bitflags]
version = "2.3"

[dependencies.blake3]
version = "1.5"
optional = true

[dependencies.bytes]
version = "1.4"
optional = true

[dependencies.crc32c]
version = "0.6.8"

[dependencies.dashmap]
version = "6.1.0"
optional = true

[dependencies.ed25519-dalek]
version = "2.1.1"
optional = true

[dependencies.hex]
version = "0.4"

[dependencies.num-bigint]
version = "0.4"
optional = true

[dependencies.num-traits]
version = "0.2"
optional = true

[dependencies.rand8]
version = "0.8"
optional = true
package = "rand"

[dependencies.rand9]
version = "0.9"
optional = true
package = "rand"

[dependencies.rayon]
version = "1.10"
optional = true

[dependencies.scc]
version = "2.1"
optional = true

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true

[dependencies.sha2]
version = "0.10"

[dependencies.smallvec]
version = "1.9"
features = ["union"]

[dependencies.thiserror]
version = "2.0"

[dependencies.tl-proto]
version = "0.5.3"
optional = true

[dependencies.tycho-crypto]
version = "0.4"
features = ["tl-proto"]
optional = true

[dependencies.tycho-types-abi-proc]
version = "=0.3.0"
optional = true

[dependencies.tycho-types-proc]
version = "=0.3.0"

[dependencies.typeid]
version = "1.0"

[dev-dependencies.anyhow]
version = "1.0"

[dev-dependencies.base64]
version = "0.22"

[dev-dependencies.criterion]
version = "0.7"

[dev-dependencies.iai-callgrind]
version = "0.16.1"

[dev-dependencies.paste]
version = "1.0.15"

[dev-dependencies.rand_xorshift]
version = "0.4"

[dev-dependencies.serde]
version = "1"
features = ["derive"]

[dev-dependencies.serde_json]
version = "1"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]

[profile.dev.package.base64]
opt-level = 3

[profile.dev.package.curve25519-dalek]
opt-level = 3

[profile.dev.package.ed25519]
opt-level = 3

[profile.dev.package.hex]
opt-level = 3

[profile.dev.package.rand]
opt-level = 3

[profile.dev.package.sha2]
opt-level = 3

[profile.dev.package.tycho-crypto]
opt-level = 3

[profile.dev.package."*"]
opt-level = 1

[profile.release]
debug = 2