[package] name = "gluon" version = "0.18.2" # GLUON authors = ["Markus "] keywords = ["script", "scripting", "language"] build = "build.rs" edition = "2018" license = "MIT" description = "A static, type inferred programming language for application embedding" readme = "README.md" homepage = "https://gluon-lang.org" repository = "https://github.com/gluon-lang/gluon" documentation = "https://docs.rs/gluon" [workspace] members = ["c-api", "repl", "completion", "format", "doc", "codegen"] [lib] name = "gluon" path = "src/lib.rs" [dependencies] gluon_base = { path = "base", version = "0.18.2" } # GLUON gluon_check = { path = "check", version = "0.18.2" } # GLUON gluon_parser = { path = "parser", version = "0.18.2" } # GLUON gluon_codegen = { path = "codegen", version = "0.18.2" } # GLUON gluon_vm = { path = "vm", version = "0.18.2", default-features = false } # GLUON gluon_format = { path = "format", version = "0.18.2", default-features = false } # GLUON async-trait = "0.1.73" log = "0.4.20" quick-error = "2.0.1" collect-mac = "0.1.0" either = "1.9.0" itertools = "0.10.5" futures = { version = "0.3.28", default-features = false } codespan = "0.11.1" codespan-reporting = "0.11.1" pin-project-lite = { version = "0.2.13", optional = true } salsa = { version = "0.15.2", package = "gluon-salsa" } serde = { version = "1.0.188", optional = true } serde_state = { version = "0.4.8", optional = true } serde_derive_state = { version = "0.4.10", optional = true } tokio = { version = "1.32.0", features = ["sync", "rt"], optional = true } tokio-stream = { version = "0.1", features = ["net"], optional = true } # Binding crates regex = { version = "1.9.4", optional = true } # web tower-service = { version = "0.3.2", optional = true } http = { version = "0.2.9", optional = true } hyper = { version = "0.14.27", optional = true, features = ["stream", "client", "server", "http1", "tcp"] } native-tls = { version = "0.2.11", optional = true } tokio-native-tls = { version = "0.3.1", optional = true } # Crates used in testing compiletest_rs = { version = "0.7.1", optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] rand = { version = "0.8.5", optional = true } rand_xorshift = { version = "0.3.0", optional = true } [build-dependencies] gluon_base = { path = "base", version = "0.18.2" } # GLUON itertools = "0.10.5" little-skeptic = { version = "0.15.2", optional = true } walkdir = "2.3.3" [dev-dependencies] anyhow = "1.0.75" criterion = "0.3.6" collect-mac = "0.1.0" env_logger = "0.9.3" expect-test = "1.4.1" thiserror = "1.0.47" insta = "1.31.0" pretty_assertions = "1.4.0" structopt = "0.3.26" tempfile = "3.8.0" tensile = { version = "0.7", features = ["tokio"] } tokio = { version = "1.32.0", features = ["macros", "rt-multi-thread", "fs"] } walkdir = "2.3.3" serde = "1.0.188" serde_derive = "1.0.188" serde_derive_state = "0.4.10" serde_json = "1.0.105" bincode = "1.3.3" pulldown-cmark = "0.8.0" gluon_completion = { path = "completion", version = "0.18.2" } # GLUON gluon_codegen = { path = "codegen", version = "0.18.2" } # GLUON [features] default = ["async", "regex", "random"] async = ["tokio"] random = ["rand", "rand_xorshift"] serialization = ["serde", "serde_state", "serde_derive_state", "gluon_vm/serialization"] web = ["async", "hyper", "http", "tower-service", "native-tls", "tokio/net", "tokio-stream", "tokio-native-tls", "pin-project-lite"] docs_rs = ["serialization"] test = ["serialization", "little-skeptic", "http", "web", "gluon_vm/test"] nightly = ["compiletest_rs", "gluon_base/nightly"] test_nightly = ["test", "nightly"] [[bench]] name = "check" harness = false [[bench]] name = "function_call" harness = false [[bench]] name = "precompiled" harness = false [[test]] name = "main" harness = false required-features = ["serialization"] [[example]] name = "marshalling" required-features = ["serialization"] [[example]] name = "http" path = "examples/http/main.rs" required-features = ["serialization", "web"] [[example]] name = "lisp" path = "examples/lisp/main.rs" [package.metadata.docs.rs] features = ["docs_rs"] [profile.bench] debug = 2 [profile.release] debug = 2