[package]
edition = "2024"
rust-version = "1.95"
name = "solar-cli"
version = "0.2.0"
authors = ["DaniPopes <57450786+DaniPopes@users.noreply.github.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Solar compiler CLI definitions, utils, and driver"
homepage = "https://github.com/paradigmxyz/solar/tree/main/crates/cli"
readme = "README.md"
keywords = [
"ethereum",
"solidity",
"solc",
"crypto",
"compiler",
]
categories = [
"compilers",
"cryptography",
"cryptography::cryptocurrencies",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/paradigmxyz/solar"
resolver = "2"
[features]
asm = [
"alloy-primitives/asm-keccak",
"solar-config/asm",
]
default = [
"mimalloc",
"tracing",
]
jemalloc = [
"dep:tikv-jemallocator",
"solar-config/jemalloc",
]
lsp = [
"dep:solar-lsp",
"dep:tokio",
]
mimalloc = [
"dep:mimalloc",
"solar-config/mimalloc",
]
nightly = [
"solar-config/nightly",
"solar-interface/nightly",
"solar-lsp?/nightly",
"solar-sema/nightly",
]
tracing = [
"dep:tracing-subscriber",
"solar-config/tracing",
]
tracing-chrome = [
"tracing",
"dep:tracing-chrome",
"solar-config/tracing-chrome",
]
tracing-off = [
"tracing/release_max_level_off",
"solar-config/tracing-off",
]
tracing-samply = [
"tracing",
"dep:tracing-samply",
"solar-config/tracing-samply",
]
tracy = [
"tracing",
"dep:tracing-tracy",
"solar-config/tracy",
]
tracy-allocator = [
"tracing",
"tracy",
"solar-config/tracy-allocator",
]
[lib]
name = "solar_cli"
path = "src/lib.rs"
[dependencies.alloy-primitives]
version = "1.3"
[dependencies.cfg-if]
version = "1.0"
[dependencies.clap]
version = "4.4"
features = ["derive"]
[dependencies.indexmap]
version = "2.2"
features = ["serde"]
[dependencies.mimalloc]
version = "0.1"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.solar-codegen]
version = "=0.2.0"
default-features = false
[dependencies.solar-config]
version = "=0.2.0"
features = ["clap"]
default-features = false
[dependencies.solar-data-structures]
version = "=0.2.0"
default-features = false
[dependencies.solar-interface]
version = "=0.2.0"
features = ["json"]
default-features = false
[dependencies.solar-lsp]
version = "=0.2.0"
optional = true
default-features = false
[dependencies.solar-sema]
version = "=0.2.0"
default-features = false
[dependencies.tokio]
version = "1.47"
features = [
"rt",
"rt-multi-thread",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-chrome]
version = "0.7"
optional = true
[dependencies.tracing-samply]
version = "0.1.5"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"registry",
"env-filter",
]
optional = true
[dependencies.tracing-tracy]
version = "0.11"
features = ["demangle"]
optional = true
[dev-dependencies.snapbox]
version = "1.2"
features = ["json"]
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(unix)".dependencies.tikv-jemallocator]
version = "0.7"
optional = true
[lints.clippy]
dbg-macro = "warn"
manual-string-new = "warn"
redundant-clone = "warn"
test-attr-in-doctest = "allow"
uninlined-format-args = "warn"
use-self = "warn"
[lints.rust]
redundant-lifetimes = "warn"
rust-2018-idioms = "warn"
unnameable-types = "warn"
unreachable-pub = "warn"
unused-crate-dependencies = "warn"
unused-must-use = "warn"
[lints.rustdoc]
all = "warn"