rhai 0.20.2

Embedded scripting for Rust
Documentation
[workspace]

members = [".", "codegen"]



[package]

name = "rhai"

version = "0.20.2"

edition = "2018"

authors = ["Jonathan Turner", "Lukáš Hozda", "Stephen Chung", "jhwgh1968"]

description = "Embedded scripting for Rust"

homepage = "https://rhai.rs"

repository = "https://github.com/rhaiscript"

readme = "README.md"

license = "MIT OR Apache-2.0"

include = ["**/*.rs", "scripts/*.rhai", "**/*.md", "Cargo.toml"]

keywords = ["scripting", "scripting-engine", "scripting-language", "embedded"]

categories = ["no-std", "embedded", "wasm", "parser-implementations"]



[dependencies]

smallvec = { version = "1.6", default-features = false, features = ["union"] }

ahash = { version = "0.7", default-features = false }

num-traits = { version = "0.2", default_features = false }

smartstring = { version = "0.2.6", default_features = false }

rhai_codegen = { version = "0.3.4", path = "codegen", default_features = false }



[features]

default = ["smartstring/std", "ahash/std", "num-traits/std"] # remove 'smartstring/std' when smartstring is updated to support no-std

unchecked = []                  # unchecked arithmetic

sync = []                       # restrict to only types that implement Send + Sync

no_position = []                # do not track position in the parser

no_optimize = []                # no script optimizer

no_float = []                   # no floating-point

f32_float = []                  # set FLOAT=f32

only_i32 = []                   # set INT=i32 (useful for 32-bit systems)

only_i64 = []                   # set INT=i64 (default) and disable support for all other integer types

decimal = ["rust_decimal/std"]  # add the Decimal number type

no_index = []                   # no arrays and indexing

no_object = []                  # no custom objects

no_function = ["no_closure"]    # no script-defined functions (meaning no closures)

no_closure = []                 # no automatic sharing and capture of anonymous functions to external variables

no_module = []                  # no modules

internals = []                  # expose internal data structures

unicode-xid-ident = ["unicode-xid"] # allow Unicode Standard Annex #31 for identifiers.

metadata = ["serde_json", "rhai_codegen/metadata"] # enable exporting functions metadata



no_std = ["no-std-compat", "num-traits/libm", "core-error", "libm", "ahash/compile-time-rng"]



# compiling for WASM

wasm-bindgen = ["instant/wasm-bindgen"]

stdweb = ["instant/stdweb"]



# internal feature flags - volatile

no_smartstring = []             # Do not use SmartString



[profile.release]

lto = "fat"

codegen-units = 1

#opt-level = "z"     # optimize for size

#panic = 'abort'     # remove stack backtrace for no-std



[dependencies.no-std-compat]

version = "0.4"

default_features = false

features = ["alloc"]

optional = true



[dependencies.libm]

version = "0.2"

default_features = false

optional = true



[dependencies.core-error]

version = "0.0"

default_features = false

features = ["alloc"]

optional = true



[dependencies.serde]

version = "1.0"

default_features = false

features = ["derive", "alloc"]

optional = true



[dependencies.serde_json]

version = "1.0"

default_features = false

features = ["alloc"]

optional = true



[dependencies.unicode-xid]

version = "0.2"

default_features = false

optional = true



[dependencies.rust_decimal]

version = "1.14"

default_features = false

features = ["maths"]

optional = true



[target.'cfg(target_arch = "wasm32")'.dependencies]

instant = { version = "0.1" } # WASM implementation of std::time::Instant



[target.'cfg(target_arch = "wasm64")'.dependencies]

instant = { version = "0.1" } # WASM implementation of std::time::Instant



[package.metadata.docs.rs]

features = ["metadata", "serde", "internals", "decimal"] # compiling for no-std