[package]
name = "ckb"
version = "0.200.0"
license = "MIT"
authors = ["Nervos Core Dev <dev@nervos.org>"]
edition = "2021"
build = "build.rs"
description = "CKB is the layer 1 of Nervos Network, a public/permissionless blockchain."
homepage = "https://github.com/nervosnetwork/ckb"
repository = "https://github.com/nervosnetwork/ckb"
rust-version = "1.81.0"

[build-dependencies]
ckb-build-info = { path = "util/build-info", version = "= 0.200.0" }

[dependencies]
ckb-build-info = { path = "util/build-info", version = "= 0.200.0" }
ckb-bin = { path = "ckb-bin", version = "= 0.200.0" }
console-subscriber = { version = "0.4.0", optional = true }

[dev-dependencies]

[workspace]
# To get a list sorted by dependencies, run devtools/ci/check-cyclic-dependencies.py
members = [
    "util",
    "util/occupied-capacity/core",
    "util/channel",
    "util/systemtime",
    "util/fixed-hash/core",
    "util/build-info",
    "util/logger",
    "util/logger-config",
    "util/metrics-config",
    "util/hash",
    "util/rational",
    "benches",
    "db-schema",
    "util/spawn",
    "util/occupied-capacity/macros",
    "util/fixed-hash/macros",
    "util/logger-service",
    "util/runtime",
    "util/stop-handler",
    "util/metrics",
    "util/metrics-service",
    "util/fixed-hash",
    "util/occupied-capacity",
    "util/crypto",
    "util/constant",
    "error",
    "util/multisig",
    "util/gen-types",
    "util/migrate/migration-template",
    "util/types",
    "util/jsonrpc-types",
    "freezer",
    "resource",
    "pow",
    "util/dao/utils",
    "traits",
    "spec",
    "util/fee-estimator",
    "util/proposal-table",
    "script",
    "util/app-config",
    "db",
    "network",
    "miner",
    "notify",
    "util/memory-tracker",
    "db-migration",
    "util/network-alert",
    "store",
    "util/indexer-sync",
    "util/indexer",
    "util/rich-indexer",
    "util/chain-iter",
    "util/dao",
    "util/test-chain-utils",
    "util/reward-calculator",
    "util/snapshot",
    "util/migrate",
    "verification/traits",
    "verification",
    "verification/contextual",
    "tx-pool",
    "shared",
    "block-filter",
    "chain",
    "sync",
    "util/instrument",
    "rpc",
    "util/light-client-protocol-server",
    "util/launcher",
    "devtools/doc/rpc-gen",
    "ckb-bin",
]

[workspace.dependencies]
tempfile = "3"
itertools = "0.11.0"

[profile.release]
overflow-checks = true

[profile.release.build-override]
opt-level = 3

[profile.bench.build-override]
opt-level = 3

[profile.prod]
inherits = "release"
lto = true
codegen-units = 1

[target.'cfg(all(not(target_env = "msvc"), not(target_os="macos")))'.dependencies]
tikv-jemallocator = { version = "0.5.0", features = [
    "unprefixed_malloc_on_supported_platforms",
] }

[features]
default = []
deadlock_detection = ["ckb-bin/deadlock_detection"]
with_sentry = ["ckb-bin/with_sentry"]
with_dns_seeding = ["ckb-bin/with_dns_seeding"]
profiling = ["tikv-jemallocator/profiling", "ckb-bin/profiling"]
portable = ["ckb-bin/portable"]
march-native = ["ckb-bin/march-native"]
tokio-trace = ["console-subscriber"]