[package]
edition = "2024"
name = "egglog"
version = "3.0.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "egglog is a language that combines the benefits of equality saturation and datalog. It can be used for analysis, optimization, and synthesis of programs. It is the successor to the popular rust library egg."
readme = "README.md"
keywords = [
"e-graphs",
"egglog",
"datalog",
"compiler",
"equality",
]
license = "MIT"
repository = "https://github.com/egraphs-good/egglog"
[features]
bin = [
"serde",
"graphviz",
"dep:clap",
"dep:env_logger",
"dep:chrono",
"dep:mimalloc",
]
default = ["bin"]
graphviz = ["egraph-serialize/graphviz"]
serde = ["egraph-serialize/serde"]
[lib]
name = "egglog"
path = "src/lib.rs"
[[bin]]
name = "egglog"
path = "src/main.rs"
required-features = ["bin"]
[[test]]
name = "api_const_fold"
path = "tests/api_const_fold.rs"
[[test]]
name = "api_fact_ops"
path = "tests/api_fact_ops.rs"
[[test]]
name = "api_introspection"
path = "tests/api_introspection.rs"
[[test]]
name = "api_proofs"
path = "tests/api_proofs.rs"
[[test]]
name = "api_query"
path = "tests/api_query.rs"
[[test]]
name = "container_rebuild"
path = "tests/container_rebuild.rs"
[[test]]
name = "extraction_proof_mode"
path = "tests/extraction_proof_mode.rs"
[[test]]
name = "files"
path = "tests/files.rs"
harness = false
required-features = ["bin"]
[[test]]
name = "globals_warning_tests"
path = "tests/globals_warning_tests.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "naive_unstable_fn_via_global"
path = "tests/naive_unstable_fn_via_global.rs"
[[test]]
name = "no_panic"
path = "tests/no_panic.rs"
[[test]]
name = "proof_mode_regression"
path = "tests/proof_mode_regression.rs"
[[test]]
name = "proof_selector_merge"
path = "tests/proof_selector_merge.rs"
[[test]]
name = "terms"
path = "tests/terms.rs"
[[test]]
name = "test_command_macros"
path = "tests/test_command_macros.rs"
[[test]]
name = "test_desugar"
path = "tests/test_desugar.rs"
[[test]]
name = "typed_primitive"
path = "tests/typed_primitive.rs"
[[test]]
name = "validator_test"
path = "tests/validator_test.rs"
[[bench]]
name = "ci_benchmarking"
path = "benches/ci_benchmarking.rs"
harness = false
[[bench]]
name = "common"
path = "benches/common.rs"
[[bench]]
name = "nightly_benchmarking"
path = "benches/nightly_benchmarking.rs"
harness = false
[[bench]]
name = "rust_api_benchmarking"
path = "benches/rust_api_benchmarking.rs"
harness = false
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.csv]
version = "1.3"
[dependencies.dyn-clone]
version = "1.0.17"
[dependencies.egglog-add-primitive]
version = "3.0.0"
[dependencies.egglog-ast]
version = "3.0.0"
[dependencies.egglog-bridge]
version = "3.0.0"
[dependencies.egglog-core-relations]
version = "3.0.0"
[dependencies.egglog-numeric-id]
version = "3.0.0"
[dependencies.egglog-reports]
version = "3.0.0"
[dependencies.egraph-serialize]
version = "0.3.0"
default-features = false
[dependencies.enum-map]
version = "2.7"
[dependencies.env_logger]
version = "0.11"
optional = true
[dependencies.hashbrown]
version = "0.16"
[dependencies.im-rc]
version = "15.1.0"
[dependencies.indexmap]
version = "2.2"
[dependencies.log]
version = "0.4"
[dependencies.mimalloc]
version = "0.1"
optional = true
[dependencies.num]
version = "0.4.3"
[dependencies.ordered-float]
version = "5.0"
[dependencies.rustc-hash]
version = "2.1"
[dependencies.serde_json]
version = "1.0"
[dependencies.smallvec]
version = "1.10"
[dependencies.thiserror]
version = "2.0"
[dependencies.web-time]
version = "1.1"
[dev-dependencies.divan]
version = "4.6.0"
package = "codspeed-divan-compat"
[dev-dependencies.glob]
version = "0.3.1"
[dev-dependencies.insta]
version = "1.40"
[dev-dependencies.libtest-mimic]
version = "0.8"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.testing_logger]
version = "0.1"
[build-dependencies.chrono]
version = "0.4"
features = ["now"]
optional = true
default-features = false
[profile.profiling]
debug = 2
inherits = "release"
[profile.release]
incremental = true