← all repositories
oramasearch/onnx-go

Go gets a second chance at running neural nets

A revived project lets Go developers import ONNX models without leaving the language's ecosystem.

897 stars Go Inference · Serving
onnx-go
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

onnx-go decodes pre-trained ONNX neural network models into Go-native computation graphs. You feed it a binary .onnx file, it hands you a structured graph you can execute through a backend of your choice. The core package handles the protobuf parsing and model structure; actual math happens elsewhere.

The interesting bit

The project was archived by its original author in May 2024, then picked up by Orama with promises of “substantial efforts” to revive it. That makes it a bet on community resurrection rather than mature tooling. The backend interface is deliberately thin: your graph just needs to satisfy graph.DirectedWeightedBuilder and know how to ApplyOperation.

Key highlights

  • Decodes ONNX binary models to a backend-agnostic computation graph
  • Ships with a reference “simple” backend that does nothing but hold the graph structure
  • Primary target backend is Gorgonia, though coverage is partial (see ONNX_COVERAGE.md)
  • Includes test utilities in backend/testbackend for backend authors
  • Protobuf definitions are internal and unexported to allow transparent compiler swaps

Caveats

  • API is explicitly marked experimental and may change
  • Orama just took over maintenance; patience requested for issues
  • Many ONNX operators remain unimplemented in the Gorgonia backend, so most model zoo files won’t run yet

Verdict

Worth watching if you’re committed to Go for ML inference and willing to contribute operators or tolerate rough edges. If you need reliable, broad ONNX coverage today, the Python or C++ runtimes remain the pragmatic choice.

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