ONNX-Scala

ONNX-Scala provides an API and backend for deep and classical machine learning in Scala.

github.com/EmergentOrder/onnx-scala
ONNX-Scala homepage screenshot

About ONNX-Scala

ONNX-Scala is an open-source ONNX API and backend for Scala 3 for deep learning and classical machine learning. It provides full-model inference by loading an ONNX file from disk and passing it to the underlying backend, and a fine-grained, versioned API for individual ONNX operators.

It is cross-built for Scala JVM, Scala.js/JavaScript and Scala Native, and lists support for ONNX 1.17.0 with ONNX Runtime 1.20.0. The full-model API is untyped in its inputs and can fail at runtime, but allows dynamic shapes when the model supports symbolic dimensions.

Key features

  • Run full ONNX models through backend for inference
  • Versioned, numerically generic API for individual ONNX operators
  • Cross-built for Scala JVM, Scala.js and Scala Native
  • Typed tensors with shape and denotation checking in Scala 3
  • Load ONNX model files from disk at runtime
  • Support dynamic input shapes where model allows symbolic dimensions
Best for: Scala 3 developers running ONNX deep learning or classical machine learning models.
Good for
  • Passes full model graph as-is to backend for optimization
  • Cross-built for JVM, JavaScript and Native targets in Scala 3
  • Supports ONNX 1.17.0 with backward compatibility for older model versions
Watch out for
  • Full-model API is untyped in inputs and can fail at runtime
  • JVM use adds overhead moving data between JVM and native memory

ONNX-Scala at a glance

Type
Open-source project
Pricing
Not confirmed. Check the site
Open source
Yes · Source code
Language
English
Last checked
Oct 5, 2026 · Online when checked
Listed
Oct 5, 2026

ONNX-Scala alternatives

Tools and sites you could use instead, ranked by how closely they match.

All 24 alternatives

Popular in Developer Tools

Well-known listings from the same topic.

All 423

ONNX-Scala FAQ

How do I add ONNX-Scala to a project?
Add libraryDependencies += "org.emergent-order" %% "onnx-scala-backends" % "0.17.0" to the build.sbt in your project.
What Scala and ONNX versions does it target?
Code snippets are written in Scala 3, cross-built for Scala JVM, Scala.js/JavaScript and Scala Native, with ONNX 1.17.0 and ONNX Runtime 1.20.0.
Can I use different batch sizes per model call?
Yes, with the full-model API if your model supports this via symbolic dimensions, per ONNX Shape Inference.
Is something wrong or out of date?

Tell us and an editor will check it.

Own this website?

Claim the listing and suggest updates yourself. An editor checks every claim first.

Claim this listing