[package] name = "lune" version = "0.8.3" edition = "2021" license = "MPL-2.0" repository = "https://github.com/lune-org/lune" description = "A standalone Luau runtime" readme = "README.md" keywords = ["cli", "lua", "luau", "runtime"] categories = ["command-line-interface"] [[bin]] name = "lune" path = "src/main.rs" [lib] name = "lune" path = "src/lib.rs" [features] default = ["cli", "roblox"] cli = [ "dep:anyhow", "dep:env_logger", "dep:clap", "dep:include_dir", "dep:regex", "dep:rustyline", "dep:zip_next", ] roblox = [ "dep:glam", "dep:rand", "dep:rbx_cookie", "dep:rbx_binary", "dep:rbx_dom_weak", "dep:rbx_reflection", "dep:rbx_reflection_database", "dep:rbx_xml", ] # Profile for building the release binary, with the following options set: # # 1. Optimize for size # 2. Automatically strip symbols from the binary # 3. Enable link-time optimization # # Note that we could abort instead of panicking to cut down on size # even more, but because we use the filesystem & some other APIs we # need the panic unwinding to properly handle usage of said APIs # [profile.release] opt-level = "z" strip = true lto = true # All of the dependencies for Lune. # # Dependencies are categorized as following: # # 1. General dependencies with no specific features set # 2. Large / core dependencies that have many different crates and / or features set # 3. Dependencies for specific features of Lune, eg. the CLI or massive Roblox builtin library # [dependencies] console = "0.15" directories = "5.0" futures-util = "0.3" once_cell = "1.17" thiserror = "1.0" async-trait = "0.1" dialoguer = "0.11" dunce = "1.0" lz4_flex = "0.11" path-clean = "1.0" pathdiff = "0.2" pin-project = "1.0" urlencoding = "2.1" bstr = "1.9.1" ### RUNTIME blocking = "1.5" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tokio = { version = "1.24", features = ["full", "tracing"] } os_str_bytes = { version = "7.0", features = ["conversions"] } mlua-luau-scheduler = { version = "0.0.2" } mlua = { version = "0.9.7", features = [ "luau", "luau-jit", "async", "serialize", ] } ### SERDE async-compression = { version = "0.4", features = [ "tokio", "brotli", "deflate", "gzip", "zlib", ] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0", features = ["preserve_order"] } serde_yaml = "0.9" toml = { version = "0.8", features = ["preserve_order"] } ### NET hyper = { version = "1.1", features = ["full"] } hyper-util = { version = "0.1", features = ["full"] } http = "1.0" http-body-util = { version = "0.1" } hyper-tungstenite = { version = "0.13" } reqwest = { version = "0.11", default-features = false, features = [ "rustls-tls", ] } tokio-tungstenite = { version = "0.21", features = ["rustls-tls-webpki-roots"] } ### DATETIME chrono = "=0.4.34" # NOTE: 0.4.35 does not compile with chrono_lc chrono_lc = "0.1" ### CLI anyhow = { optional = true, version = "1.0" } env_logger = { optional = true, version = "0.11" } itertools = "0.12" clap = { optional = true, version = "4.1", features = ["derive"] } include_dir = { optional = true, version = "0.7", features = ["glob"] } regex = { optional = true, version = "1.7", default-features = false, features = [ "std", "unicode-perl", ] } rustyline = { optional = true, version = "14.0" } zip_next = { optional = true, version = "1.1" } ### ROBLOX glam = { optional = true, version = "0.27" } rand = { optional = true, version = "0.8" } rbx_cookie = { optional = true, version = "0.1.4", default-features = false } rbx_binary = { optional = true, version = "0.7.3" } rbx_dom_weak = { optional = true, version = "2.6.0" } rbx_reflection = { optional = true, version = "4.4.0" } rbx_reflection_database = { optional = true, version = "0.2.9" } rbx_xml = { optional = true, version = "0.13.2" }