foundry-compilers 0.19.13

Compiler abstraction and Foundry project implementation
Documentation
[package]
name = "foundry-compilers"
description = "Compiler abstraction and Foundry project implementation"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
exclude.workspace = true

[lints]
workspace = true

[dependencies]
foundry-compilers-artifacts = { workspace = true, features = [
    "checksum",
    "walkdir",
    "rayon",
] }
foundry-compilers-core = { workspace = true, features = ["hasher", "regex"] }
serde.workspace = true
semver.workspace = true
alloy-primitives.workspace = true
serde_json.workspace = true
tracing.workspace = true
alloy-json-abi.workspace = true
rayon.workspace = true
thiserror.workspace = true
path-slash.workspace = true
yansi.workspace = true
solar.workspace = true
futures-util = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }

auto_impl = "1"
winnow = "0.7"
dyn-clone = "1"
derive_more = { version = "2", features = ["debug"] }
itertools = ">=0.13, <=0.14"

# project-util
tempfile = { version = "3.20", optional = true }
fs_extra = { version = "1.3", optional = true }
rand = { version = "0.9", optional = true }

# svm
svm = { workspace = true, optional = true }
svm-builds = { package = "svm-rs-builds", version = "0.5", default-features = false, optional = true }
sha2 = { version = "0.10", default-features = false, optional = true }

[dev-dependencies]
tracing-subscriber = { version = "0.3", default-features = false, features = [
    "env-filter",
    "fmt",
] }
similar-asserts.workspace = true
fd-lock = "4.0.4"
tokio = { version = "1.47", features = ["rt-multi-thread", "macros"] }
reqwest = "0.12"
tempfile = "3.20"
snapbox.workspace = true
foundry-compilers-core = { workspace = true, features = ["test-utils"] }

[features]
default = ["rustls"]
test-utils = []

full = ["async", "svm-solc"]

# Adds extra `async` methods using `tokio` to some types.
async = [
    "dep:futures-util",
    "dep:tokio",
    "tokio/fs",
    "tokio/process",
    "tokio/io-util",
    "foundry-compilers-artifacts/async",
]
# Enables `svm` to auto-detect and manage `solc` builds.
svm-solc = [
    "dep:svm",
    "dep:svm-builds",
    "dep:sha2",
    "foundry-compilers-core/svm-solc",
]
# Utilities for creating and testing project workspaces.
project-util = [
    "dep:tempfile",
    "dep:fs_extra",
    "dep:rand",
    "svm-solc",
    "foundry-compilers-core/project-util",
]

rustls = ["svm?/rustls"]
openssl = ["svm?/openssl"]

[[test]]
name = "project"
path = "tests/project.rs"
required-features = ["full", "project-util", "test-utils"]

[[test]]
name = "mocked"
path = "tests/mocked.rs"
required-features = ["full", "project-util"]