[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 = "1.2"
fuel-core-chain-config = { workspace = true }
fuel-core-consensus-module = { workspace = true }
fuel-core-database = { workspace = true }
fuel-core-executor = { workspace = true }
fuel-core-importer = { workspace = true }
fuel-core-metrics = { workspace = true, optional = 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",
] }
futures = { workspace = true }
hex = { version = "0.4", features = ["serde"] }
hyper = { version = "0.14" }
itertools = { workspace = true }
parking_lot = { workspace = true }
postcard = { workspace = true, features = ["use-std"] }
primitive-types = "0.12"
rand = { workspace = true }
rocksdb = { version = "0.20", default-features = false, features = [
"lz4",
"multi-threaded-cf",
], optional = true }
serde = { workspace = true, features = ["derive"] }
serde_bytes = { workspace = true }
serde_json = { workspace = true, features = ["raw_value"] }
strum = "0.24"
strum_macros = "0.24"
tempfile = { workspace = true, optional = true }
thiserror = "1.0"
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tokio-stream = { workspace = true, features = ["sync"] }
tower-http = { version = "0.3", features = ["set-header", "trace"] }
tracing = { workspace = true }
tracing-honeycomb = { version = "0.4", features = ["use_parking_lot"] }
uuid = { version = "1.1", features = ["v4"], optional = true }
[dev-dependencies]
assert_matches = "1.5"
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"] }
mockall = { workspace = true }
test-case = { workspace = true }
[features]
dap = ["dep:uuid"]
debug = ["fuel-core-types/debug", "dap"]
default = ["debug", "metrics", "rocksdb"]
metrics = ["dep:fuel-core-metrics"]
p2p = ["dep:fuel-core-p2p", "dep:fuel-core-sync"]
relayer = ["dep:fuel-core-relayer"]
rocksdb = ["dep:rocksdb", "dep:tempfile"]
test-helpers = ["fuel-core-p2p?/test-helpers"]
rocksdb-production = ["rocksdb", "rocksdb/jemalloc"]