[package]
edition = "2024"
rust-version = "1.96"
name = "mech-core"
version = "0.3.0"
authors = ["Corey Montella <corey@mech-lang.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The Mech language runtime."
homepage = "https://mech-lang.org"
documentation = "http://docs.mech-lang.org"
readme = "README.md"
keywords = [
"mech",
"language",
"programming",
"dataflow",
"runtime",
]
categories = [
"no-std",
"science::robotics",
"science",
"game-engines",
"database-implementations",
]
license = "Apache-2.0"
repository = "https://github.com/mech-lang/mech"
[badges.gitlab]
branch = "main"
repository = "mech-lang/core"
[badges.maintenance]
status = "actively-developed"
[features]
atom = []
base = [
"baselib",
"pretty_print",
"serde",
"compiler",
"mika",
"program",
"statements_default",
"subscript_default",
]
baselib = [
"bool",
"string",
"f64",
"c64",
"r64",
"set",
"map",
"table",
"tuple",
"record",
"atom",
"enum",
"row_vectord",
"vectord",
"matrixd",
"subscript_range",
"logical_indexing",
"subscript_formula",
"variable_define",
"variable_assign",
"kind_define",
"kind_annotation",
"variables",
"functions",
"formulas",
]
bool = []
c64 = ["complex"]
compiler = [
"crc32fast",
"byteorder",
]
complex = [
"num-traits",
"nalgebra",
"f64",
"numbers",
]
default = [
"baselib",
"pretty_print",
"serde",
"compiler",
"mika",
"program",
"u8",
"u16",
"u32",
"u64",
"u128",
"i8",
"i16",
"i32",
"i64",
"i128",
"f32",
"f64",
"c64",
"r64",
"statements_default",
"subscript_default",
]
dot_indexing = ["subscript"]
dynamic_matrix = [
"matrixd",
"vectord",
"row_vectord",
"matrix",
]
enum = []
f32 = ["floats"]
f64 = ["floats"]
fixed_matrix = [
"matrix4",
"matrix3",
"matrix2",
"matrix1",
"matrix2x3",
"matrix3x2",
"matrix",
]
fixed_row_vector = [
"row_vector4",
"row_vector3",
"row_vector2",
"matrix",
]
fixed_vector = [
"vector4",
"vector3",
"vector2",
"matrix",
]
floats = [
"num-traits",
"numbers",
]
formulas = []
functions = [
"indexmap",
"symbol_table",
]
i128 = ["signed_ints"]
i16 = ["signed_ints"]
i32 = ["signed_ints"]
i64 = ["signed_ints"]
i8 = ["signed_ints"]
kind_annotation = ["functions"]
kind_define = [
"kind_annotation",
"statements",
]
logical_indexing = [
"subscript",
"vectord",
"bool",
]
map = ["indexmap"]
math_pow = [
"libm",
"num-traits",
]
matrix = ["nalgebra"]
matrix1 = ["matrix"]
matrix2 = ["matrix"]
matrix2x3 = ["matrix"]
matrix3 = ["matrix"]
matrix3x2 = ["matrix"]
matrix4 = ["matrix"]
matrixd = ["matrix"]
mika = []
no_std = [
"rlibc",
"hashbrown",
"embedded-io",
"fxhash",
]
numbers = []
pretty_print = [
"tabled",
"serde_json",
]
program = [
"crc32fast",
"byteorder",
]
r64 = ["rational"]
range = []
rational = [
"num-traits",
"num-rational",
"i64",
"numbers",
]
record = [
"indexmap",
"tuple",
]
row_vector2 = ["matrix"]
row_vector3 = ["matrix"]
row_vector4 = ["matrix"]
row_vectord = ["matrix"]
serde = [
"brotli",
"base64",
"serde_derive",
"serde_json",
"bincode",
"indexmap/serde",
"bincode/serde",
"dep:serde",
]
set = ["indexmap"]
signed_ints = ["numbers"]
statements = []
statements_default = [
"variable_assign",
"variable_define",
"kind_define",
]
stdlib = [
"bool",
"string",
"u8",
"u16",
"u32",
"u64",
"u128",
"i8",
"i16",
"i32",
"i64",
"i128",
"f32",
"f64",
"c64",
"r64",
"set",
"map",
"table",
"tuple",
"record",
"atom",
"matrix1",
"matrix2",
"matrix3",
"matrix4",
"matrix2x3",
"matrix3x2",
"row_vector2",
"row_vector3",
"row_vector4",
"vector2",
"vector3",
"vector4",
"row_vectord",
"vectord",
"matrixd",
"subscript_range",
"logical_indexing",
"swizzle",
"subscript_formula",
"dot_indexing",
"variable_define",
"variable_assign",
"kind_define",
"kind_annotation",
"variables",
"functions",
"formulas",
]
string = []
subscript = []
subscript_default = [
"subscript_slice",
"subscript_range",
"logical_indexing",
"swizzle",
"subscript_formula",
"dot_indexing",
]
subscript_formula = [
"subscript_slice",
"formulas",
]
subscript_range = [
"subscript_slice",
"vectord",
]
subscript_slice = [
"subscript",
"vectord",
]
swizzle = ["subscript"]
symbol_table = []
table = [
"indexmap",
"vectord",
"record",
]
tuple = []
u128 = ["unsigned_ints"]
u16 = ["unsigned_ints"]
u32 = ["unsigned_ints"]
u64 = ["unsigned_ints"]
u8 = ["unsigned_ints"]
unsigned_ints = ["numbers"]
variable_assign = ["statements"]
variable_define = [
"statements",
"functions",
]
variables = [
"variable_define",
"symbol_table",
]
vector2 = ["matrix"]
vector3 = ["matrix"]
vector4 = ["matrix"]
vectord = ["matrix"]
[lib]
name = "mech_core"
path = "src/lib.rs"
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.bincode]
version = "2.0.1"
optional = true
[dependencies.brotli]
version = "8.0.2"
optional = true
[dependencies.byteorder]
version = "1.5.0"
optional = true
[dependencies.crc32fast]
version = "1.5.0"
optional = true
[dependencies.embedded-io]
version = "0.7.1"
optional = true
[dependencies.fxhash]
version = "0.2.1"
optional = true
default-features = false
[dependencies.hashbrown]
version = "0.16.1"
optional = true
default-features = false
[dependencies.indexmap]
version = "2.13.0"
optional = true
[dependencies.inventory]
version = "0.3.22"
[dependencies.libm]
version = "0.2.16"
optional = true
[dependencies.nalgebra]
version = "0.34.1"
optional = true
[dependencies.num-rational]
version = "0.4.2"
optional = true
[dependencies.num-traits]
version = "0.2.19"
features = ["libm"]
optional = true
default-features = false
[dependencies.paste]
version = "1.0.15"
[dependencies.rayon]
version = "1.11.0"
optional = true
[dependencies.rlibc]
version = "=1.0"
optional = true
[dependencies.seahash]
version = "4.1.0"
[dependencies.serde]
version = "1.0.228"
features = [
"alloc",
"derive",
]
optional = true
default-features = false
[dependencies.serde_derive]
version = "1.0.219"
optional = true
[dependencies.serde_json]
version = "1.0.142"
optional = true
[dependencies.tabled]
version = "0.20.0"
optional = true
[dependencies.wasm-bindgen]
version = "0.2.114"
optional = true
[dependencies.web-sys]
version = "0.3.91"
features = [
"Document",
"Element",
"HtmlElement",
"Node",
"Window",
"Crypto",
"console",
]
optional = true