← all repositories
fff-rs/juice

Rust ML with a side of yak shaving

A modular machine-learning stack that makes you earn every FLOP through manual dependency wrangling.

1.1k stars Rust ML Frameworks
juice
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

Juice is a Rust workspace bundling a machine-learning framework, a math abstraction layer called Coaster, data-preprocessing via Greenglas, and an MNIST example CLI. It targets hackers who want to train neural networks without leaving the Rust ecosystem.

The interesting bit

The project chases hardware agnosticism—CUDA, OpenCL, and native BLAS backends—through a single abstraction. That ambition is admirable; the reality is a build process that reads like a systems-integration exam. Cap’n’Proto for model serialization is a pragmatic, if unfashionable, choice.

Key highlights

  • Modular architecture: juice, coaster, coaster-nn, coaster-blas, greenglas, and juice-examples as separate crates
  • CUDA 11 support with cuDNN and CUBLAS (NVIDIA hardware required to run)
  • OpenCL backend exists but is marked WIP with no documentation yet
  • Native CPU backend via OpenBLAS or BLAS, with pkg-config or manual path overrides
  • Model weights serialized through Cap’n’Proto

Caveats

  • CUDA and cuDNN are required just to build the examples, not merely to use GPU acceleration
  • OpenCL backend is undocumented and unfinished
  • ArchLinux users hit a known OpenBLAS packaging snag requiring an AUR replacement
  • Supported CUDA version (11) is several generations behind current

Verdict

Worth a look if you’re committed to Rust for ML and enjoy debugging linker paths. Everyone else should probably check where tch-rs or burn are these days.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.