[package] name = "scryer-prolog" version = "0.9.4" authors = ["Mark Thom "] edition = "2021" description = "A modern Prolog implementation written mostly in Rust." readme = "README.md" repository = "https://github.com/mthom/scryer-prolog" license = "BSD-3-Clause" keywords = ["prolog", "prolog-interpreter", "prolog-system"] categories = ["command-line-utilities"] build = "build/main.rs" rust-version = "1.70" [lib] crate-type = ["cdylib", "rlib"] [features] default = ["ffi", "repl", "hostname", "tls", "http", "crypto-full"] ffi = ["dep:libffi"] repl = ["dep:crossterm", "dep:ctrlc", "dep:rustyline"] hostname = ["dep:hostname"] tls = ["dep:native-tls"] http = ["dep:warp", "dep:reqwest"] rust_beta_channel = [] crypto-full = [] [build-dependencies] indexmap = "1.0.2" proc-macro2 = "1.0.36" quote = "1.0.15" strum = "0.23" strum_macros = "0.23" syn = { version = "2.0.32", features = ['full', 'visit', 'extra-traits'] } to-syn-value = "0.1.1" to-syn-value_derive = "0.1.1" walkdir = "2" [dependencies] base64 = "0.12.3" bit-set = "0.5.3" bitvec = "1" blake2 = "0.8.1" bytes = "1" chrono = "0.4.11" cpu-time = "1.0.0" crrl = "0.6.0" dashu = "0.4.0" derive_deref = "1.1.1" dirs-next = "2.0.0" divrem = "0.1.0" futures = "0.3" fxhash = "0.2.1" git-version = "0.3.4" indexmap = "1.0.2" lazy_static = "1.4.0" lexical = "5.2.2" libc = "0.2.62" libloading = "0.7" scryer-modular-bitfield = "0.11.4" num-order = { version = "1.2.0" } ordered-float = "2.6.0" phf = { version = "0.9", features = ["macros"] } rand = "0.8.5" ref_thread_local = "0.0.0" regex = "1.9.1" ring = { version = "0.17.5", features = ["wasm32_unknown_unknown_js"] } ripemd160 = "0.8.0" roxmltree = "0.11.0" ryu = "1.0.9" select = "0.6.0" sha3 = "0.8.2" smallvec = "1.8.0" static_assertions = "1.1.0" serde_json = "1.0.95" serde = "1.0.159" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] crossterm = { version = "0.20.0", optional = true } ctrlc = { version = "3.2.2", optional = true } hostname = { version = "0.3.1", optional = true } libffi = { version = "3.2.0", optional = true } native-tls = { version = "0.2.4", optional = true } reqwest = { version = "0.11.18", optional = true } rustyline = { version = "12.0.0", optional = true } tokio = { version = "1.28.2", features = ["full"] } warp = { version = "=0.3.5", features = ["tls"], optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2.10", features = ["js"] } tokio = { version = "1.28.2", features = [ "sync", "macros", "io-util", "rt", "time", ] } [target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies] console_error_panic_hook = "0.1" wasm-bindgen = "0.2.87" wasm-bindgen-futures = "0.4" serde-wasm-bindgen = "0.5" web-sys = { version = "0.3", features = [ "Document", "Window", "Element", "Performance", ] } js-sys = "0.3" [dev-dependencies] maplit = "1.0.2" predicates-core = "1.0.2" serial_test = "2.0.0" [target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dev-dependencies] assert_cmd = "1.0.3" criterion = "0.5.1" iai-callgrind = "0.9.0" trycmd = "0.14.19" [target.'cfg(not(any(target_os = "windows", all(target_arch = "wasm32", target_os = "unknown"))))'.dev-dependencies] pprof = { version = "0.13.0", features = ["criterion", "flamegraph"] } [profile.bench] lto = true opt-level = 3 [profile.release] lto = true opt-level = 3 [[bench]] name = "run_criterion" harness = false [[bench]] name = "run_iai" harness = false