[package]
name = "ethers-solc"
authors = [
"Matthias Seitz <matthias.seitz@outlook.de>",
"Georgios Konstantopoulos <me@gakonst.com>",
]
readme = "README.md"
description = "Utilites for working with solc"
keywords = ["ethers", "ethereum", "web3", "solc", "solidity"]
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
documentation.workspace = true
repository.workspace = true
homepage.workspace = true
categories.workspace = true
exclude.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[package.metadata.playground]
all-features = true
[dependencies]
ethers-core.workspace = true
solang-parser = { version = "=0.3.3", default-features = false }
serde = { workspace = true, features = ["derive", "rc"] }
serde_json.workspace = true
tiny-keccak = { version = "2.0.2", default-features = false }
sha2 = { workspace = true, optional = true }
md-5 = "0.10.5"
semver = { workspace = true, features = ["serde"] }
walkdir.workspace = true
once_cell.workspace = true
regex.workspace = true
thiserror.workspace = true
hex.workspace = true
yansi = "0.5.1"
dirs = "5.0"
glob = "0.3.1"
tracing.workspace = true
num_cpus = "1.16.0"
dunce.workspace = true
rayon.workspace = true
path-slash = "0.2.1"
cfg-if = "1.0.0"
tempfile = { version = "3.8.0", optional = true }
fs_extra = { version = "1.3.0", optional = true }
rand = { workspace = true, optional = true }
futures-util = { workspace = true, optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
home.workspace = true
svm = { package = "svm-rs", version = "0.3", default-features = false, features = [
"blocking",
], optional = true }
svm-builds = { package = "svm-rs-builds", version = "0.2", optional = true }
tokio = { workspace = true, features = ["rt-multi-thread"] }
[dev-dependencies]
criterion = { workspace = true, features = ["async_tokio"] }
env_logger = "0.11.1"
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] }
rand.workspace = true
pretty_assertions = "1"
tempfile.workspace = true
serde_path_to_error = "0.1"
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
[[bench]]
name = "compile_many"
harness = false
[[bench]]
name = "read_all"
required-features = ["project-util"]
harness = false
[[test]]
name = "project"
path = "tests/project.rs"
required-features = ["full", "project-util"]
[[test]]
name = "mocked"
path = "tests/mocked.rs"
required-features = ["full", "project-util"]
[features]
default = ["rustls"]
full = ["async", "svm-solc"]
async = ["tokio/process", "tokio/io-util", "tokio/fs", "tokio/time", "futures-util"]
svm-solc = ["svm", "svm-builds", "sha2"]
project-util = ["tempfile", "fs_extra", "rand"]
tests = []
rustls = ["svm?/rustls"]
openssl = ["svm?/openssl"]
asm = []