[package]
edition = "2024"
rust-version = "1.89"
name = "rlx-tensor"
version = "0.2.18"
authors = [
"Eugene Hauptmann",
"Nataliya Kosmyna",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Native ndarray alternative for RLX — NumPy-style tensors that trace, fuse, and run on any backend via the rlx compiler"
documentation = "https://docs.rs/rlx"
readme = "README.md"
keywords = [
"ml",
"tensor",
"compiler",
"neural-network",
"autodiff",
]
categories = [
"science",
"algorithms",
"compilers",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/MIT-RLX/rlx"
resolver = "2"
[package.metadata.docs.rs]
features = [
"dsl",
"eval",
"transforms",
"optim",
"ndarray",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
all-features = false
[features]
autodiff = ["dep:rlx-autodiff"]
default = []
dsl = ["dep:rlx-macros"]
eval = [
"dep:rlx-runtime",
"rlx-runtime/cpu",
]
eval-apple = [
"eval",
"rlx-runtime/apple",
]
eval-blas = [
"eval",
"rlx-runtime/blas-accelerate",
]
eval-coreml = [
"eval",
"rlx-runtime/coreml",
]
eval-cuda = [
"eval",
"rlx-runtime/cuda",
]
eval-gpu = [
"eval",
"rlx-runtime/gpu",
]
eval-metal = [
"eval",
"rlx-runtime/metal",
]
eval-mlx = [
"eval",
"rlx-runtime/mlx",
]
eval-rocm = [
"eval",
"rlx-runtime/rocm",
]
grad = ["autodiff"]
ndarray = ["dep:ndarray"]
optim = [
"autodiff",
"eval",
"dep:rlx-optim",
]
transforms = ["autodiff"]
[lib]
name = "rlx_tensor"
path = "src/lib.rs"
[[test]]
name = "attention"
path = "tests/attention.rs"
[[test]]
name = "backends"
path = "tests/backends.rs"
[[test]]
name = "cache"
path = "tests/cache.rs"
[[test]]
name = "conv"
path = "tests/conv.rs"
[[test]]
name = "dtype"
path = "tests/dtype.rs"
[[test]]
name = "ergonomics"
path = "tests/ergonomics.rs"
[[test]]
name = "eval"
path = "tests/eval.rs"
[[test]]
name = "fft"
path = "tests/fft.rs"
[[test]]
name = "grad"
path = "tests/grad.rs"
[[test]]
name = "half_metal"
path = "tests/half_metal.rs"
[[test]]
name = "interop"
path = "tests/interop.rs"
[[test]]
name = "linalg"
path = "tests/linalg.rs"
[[test]]
name = "manip"
path = "tests/manip.rs"
[[test]]
name = "mlp"
path = "tests/mlp.rs"
[[test]]
name = "norm"
path = "tests/norm.rs"
[[test]]
name = "parallel"
path = "tests/parallel.rs"
[[test]]
name = "pool"
path = "tests/pool.rs"
[[test]]
name = "reductions"
path = "tests/reductions.rs"
[[test]]
name = "regression"
path = "tests/regression.rs"
[[test]]
name = "rlx_dsl"
path = "tests/rlx_dsl.rs"
[[test]]
name = "shape"
path = "tests/shape.rs"
[[test]]
name = "tensor"
path = "tests/tensor.rs"
[[test]]
name = "train"
path = "tests/train.rs"
[[test]]
name = "train_dsl"
path = "tests/train_dsl.rs"
[[test]]
name = "transform"
path = "tests/transform.rs"
[[test]]
name = "ui"
path = "tests/ui.rs"
[dependencies.ndarray]
version = "0.16"
optional = true
[dependencies.rlx-autodiff]
version = "0.2.18"
optional = true
[dependencies.rlx-ir]
version = "0.2.18"
[dependencies.rlx-macros]
version = "0.2.18"
optional = true
[dependencies.rlx-optim]
version = "0.2.18"
optional = true
[dependencies.rlx-runtime]
version = "0.2.18"
optional = true
default-features = false
[dev-dependencies.trybuild]
version = "1"
[lints.cargo]
unused_dependencies = "allow"
unused_workspace_dependencies = "allow"
[lints.clippy]
collapsible_if = "allow"
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"
large_enum_variant = "allow"
manual_range_contains = "allow"
missing_safety_doc = "allow"
needless_range_loop = "allow"
should_implement_trait = "allow"
single_range_in_vec_init = "allow"
too_many_arguments = "allow"
type_complexity = "allow"
unnecessary_wraps = "allow"
upper_case_acronyms = "allow"
useless_conversion = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust.unused]
level = "warn"
priority = 0