[package]
name = "forge-ml"
version = "0.1.0"
edition = "2024"
rust-version = "1.87"
license = "AGPL-3.0-only"
description = "A WebGPU-native machine learning runtime in Rust: train and run GPT-2 on any GPU wgpu reaches, with no CUDA and no Python"
repository = "https://github.com/Aisuko/forge"
homepage = "https://aisuko.github.io/forge/"
documentation = "https://docs.rs/forge-ml"
readme = "README.md"
keywords = ["machine-learning", "webgpu", "wgpu", "gpt2", "transformer"]
categories = ["science", "wasm", "graphics"]
include = [
"src/**/*.rs",
"shaders/*.wgsl",
"examples/*.rs",
"tests/**/*",
"README.md",
"LICENSE",
]
[lib]
name = "forge"
crate-type = ["rlib", "cdylib"]
[features]
tui = [
"dep:ratatui",
"dep:crossterm",
"dep:sysinfo",
"dep:nvml-wrapper",
"dep:memmap2",
]
[[bin]]
name = "forge-top"
path = "src/bin/forge-top/main.rs"
required-features = ["tui"]
[dependencies]
bytemuck = "1"
fancy-regex = "0.14"
rand = "0.9"
safetensors = "0.5"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
wgpu = "26"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
pollster = "0.4"
rayon = "1"
ratatui = { version = "0.30", optional = true }
crossterm = { version = "0.29", optional = true }
sysinfo = { version = "0.39", optional = true }
nvml-wrapper = { version = "0.12", optional = true }
memmap2 = { version = "0.9", optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
pollster = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
console_error_panic_hook = "0.1"
getrandom = { version = "0.3", features = ["wasm_js"] }
[profile.dev]
opt-level = 2
[profile.dev.package."*"]
opt-level = 3
[profile.release]
lto = "thin"