Go gets a second chance at running neural nets
A revived project lets Go developers import ONNX models without leaving the language's ecosystem.

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/testbackendfor 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.