[package]
edition = "2024"
rust-version = "1.85"
name = "pmetal"
version = "0.1.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance LLM fine-tuning framework for Apple Silicon"
readme = false
keywords = [
"machine-learning",
"llm",
"fine-tuning",
"apple-silicon",
"mlx",
]
categories = [
"science",
"algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/epistates/pmetal"
resolver = "2"
[features]
core = ["dep:pmetal-core"]
data = [
"dep:pmetal-data",
"core",
"mlx",
]
default = [
"core",
"gguf",
"metal",
"hub",
"mlx",
"models",
"lora",
"trainer",
]
distill = [
"dep:pmetal-distill",
"core",
"mlx",
"metal",
]
distributed = ["dep:pmetal-distributed"]
full = [
"core",
"gguf",
"metal",
"hub",
"distributed",
"mhc",
"mlx",
"models",
"lora",
"data",
"trainer",
"distill",
"merge",
"vocoder",
]
gguf = [
"dep:pmetal-gguf",
"core",
]
hub = [
"dep:pmetal-hub",
"core",
]
lora = [
"dep:pmetal-lora",
"core",
"gguf",
"metal",
"mlx",
"models",
]
lora-metal-fused = [
"lora",
"pmetal-lora/metal-fused",
]
merge = [
"dep:pmetal-merge",
"core",
"mlx",
]
metal = [
"dep:pmetal-metal",
"core",
]
mhc = [
"dep:pmetal-mhc",
"core",
"metal",
]
mlx = [
"dep:pmetal-mlx",
"core",
"metal",
]
models = [
"dep:pmetal-models",
"core",
"gguf",
"metal",
"mlx",
]
trainer = [
"dep:pmetal-trainer",
"core",
"mlx",
"metal",
"lora",
"models",
"data",
"distill",
]
vocoder = [
"dep:pmetal-vocoder",
"core",
"mlx",
]
[lib]
name = "pmetal"
path = "src/lib.rs"
[dependencies.pmetal-core]
version = "0.1.0"
optional = true
[dependencies.pmetal-data]
version = "0.1.0"
optional = true
[dependencies.pmetal-distill]
version = "0.1.0"
optional = true
[dependencies.pmetal-distributed]
version = "0.1.0"
optional = true
[dependencies.pmetal-gguf]
version = "0.1.0"
optional = true
[dependencies.pmetal-hub]
version = "0.1.0"
optional = true
[dependencies.pmetal-lora]
version = "0.1.0"
optional = true
[dependencies.pmetal-merge]
version = "0.1.0"
optional = true
[dependencies.pmetal-metal]
version = "0.1.0"
optional = true
[dependencies.pmetal-mhc]
version = "0.1.0"
optional = true
[dependencies.pmetal-mlx]
version = "0.1.0"
optional = true
[dependencies.pmetal-models]
version = "0.1.0"
optional = true
[dependencies.pmetal-trainer]
version = "0.1.0"
optional = true
[dependencies.pmetal-vocoder]
version = "0.1.0"
optional = true
[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "warn"