[package]
name = "egg"
version = "0.6.1-dev"
authors = ["Max Willsey <me@mwillsey.com>"]
edition = "2018"
description = "An implementation of egraphs"
repository = "https://github.com/mwillsey/egg"
readme = "README.md"
license = "MIT"
keywords = ["e-graphs"]
categories = ["data-structures"]

[dependencies]
symbolic_expressions = "5"
log = "0.4"
smallvec = { version = "1", features = ["serde"] }
indexmap = { version = "1.9", features = ["serde"] }
instant = "0.1"
once_cell = "1"
# for the serde-1 feature
serde = { version = "1", features = ["derive"] }
serde_cbor = "0.11.2"
# for the reports feature
multimap = "0.9.0"
itertools = "0.11.0"
either = {version = "1.9.0", features = ["serde"] }
global_counter = "0.2.1"
bimap = {version = "0.6.2", features = ["serde"]}
bitvec = "1.0.0"
invariants = "0.1.3"
# for very silly reasons
num-traits = "0.2.15"
ordered-float = { version = "1", features = ["serde"] }
lazy_static = "1.4.0"
thiserror = "1.0.31"
serde_json = "1.0.100"
regex = "1.9.1"
rayon = { version = "1.10.0", optional = true }
crossbeam = { version = "0.8.4", optional = true, features = ["crossbeam-channel"] }
num_cpus = "1.16.0"

[dev-dependencies]
env_logger = {version = "0.7", default-features = false}
ordered-float = "1"

[features]
default = ["colored", "parallel"]
#default = ["colored", "colored_no_cremove"]
#default = ["colored", "colored_no_cmemo"]
upward-merging = []
wasm-bindgen = [ "instant/wasm-bindgen" ]
reports = [ ]
colored = []
colored_no_cremove = ["colored"]
colored_no_cmemo = ["colored", "colored_no_cremove"]
keep_splits = []
parallel = ["rayon", "crossbeam", "concurrent_cufind"]
concurrent_cufind = []