[package]
authors = { workspace = true }
categories = ["concurrency", "cryptography::cryptocurrencies", "emulators"]
description = "Fuel client library is aggregation of all fuels service. It contains the all business logic of the fuel protocol."
edition = { workspace = true }
homepage = { workspace = true }
keywords = ["blockchain", "cryptocurrencies", "fuel-vm", "vm"]
license = { workspace = true }
name = "fuel-core"
repository = { workspace = true }
version = { workspace = true }
[dependencies]
anyhow = { workspace = true }
async-graphql = { version = "4.0", features = [
"tracing",
], default-features = false }
async-trait = { workspace = true }
axum = { workspace = true }
clap = { workspace = true, features = ["derive"] }
derive_more = { version = "0.99" }
enum-iterator = { workspace = true }
fuel-core-chain-config = { workspace = true, features = ["std"] }
fuel-core-consensus-module = { workspace = true }
fuel-core-database = { workspace = true }
fuel-core-executor = { workspace = true, features = ["std"] }
fuel-core-importer = { workspace = true }
fuel-core-metrics = { workspace = true }
fuel-core-p2p = { workspace = true, optional = true }
fuel-core-poa = { workspace = true }
fuel-core-producer = { workspace = true }
fuel-core-relayer = { workspace = true, optional = true }
fuel-core-services = { workspace = true }
fuel-core-storage = { workspace = true }
fuel-core-sync = { workspace = true, optional = true }
fuel-core-txpool = { workspace = true }
fuel-core-types = { workspace = true, features = ["serde"] }
fuel-core-upgradable-executor = { workspace = true }
futures = { workspace = true }
hex = { version = "0.4", features = ["serde"] }
hyper = { workspace = true }
indicatif = { workspace = true, default-features = true }
itertools = { workspace = true }
num_cpus = { version = "1.16.0", optional = true }
rand = { workspace = true }
rocksdb = { version = "0.21", default-features = false, features = [
"lz4",
"multi-threaded-cf",
], optional = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["raw_value"] }
strum = { workspace = true, features = ["derive"] }
strum_macros = { workspace = true }
tempfile = { workspace = true, optional = true }
thiserror = "1.0"
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tokio-rayon = { workspace = true }
tokio-stream = { workspace = true, features = ["sync"] }
tokio-util = { workspace = true }
tower-http = { version = "0.3", features = ["set-header", "trace", "timeout"] }
tracing = { workspace = true }
uuid = { version = "1.1", features = ["v4"] }
[dev-dependencies]
assert_matches = "1.5"
fuel-core = { path = ".", features = ["test-helpers"] }
fuel-core-executor = { workspace = true, features = ["std", "test-helpers"] }
fuel-core-services = { path = "./../services", features = ["test-helpers"] }
fuel-core-storage = { path = "./../storage", features = ["test-helpers"] }
fuel-core-trace = { path = "./../trace" }
fuel-core-types = { path = "./../types", features = ["test-helpers"] }
fuel-core-upgradable-executor = { workspace = true, features = [
"test-helpers",
] }
mockall = { workspace = true }
proptest = { workspace = true }
test-case = { workspace = true }
test-strategy = { workspace = true }
[features]
default = ["rocksdb"]
p2p = ["dep:fuel-core-p2p", "dep:fuel-core-sync"]
relayer = ["dep:fuel-core-relayer"]
rocksdb = ["dep:rocksdb", "dep:tempfile", "dep:num_cpus"]
test-helpers = [
"fuel-core-database/test-helpers",
"fuel-core-p2p?/test-helpers",
"fuel-core-storage/test-helpers",
"fuel-core-chain-config/test-helpers",
"fuel-core-txpool/test-helpers",
"fuel-core-services/test-helpers",
]
rocksdb-production = ["rocksdb", "rocksdb/jemalloc"]
wasm-executor = ["fuel-core-upgradable-executor/wasm-executor"]