xboot/libonnx

A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.

What it solves

Libonnx provides a way to run ONNX model inference on embedded devices where resources are limited and heavy frameworks cannot be installed. It offers a lightweight, portable solution that can be integrated directly into C projects.

How it works

Written in pure C99, the library allows developers to load an ONNX model from a file or a memory array. It uses a context-based system to manage the model, search for input and output tensors by name, and execute the inference process. It also supports hardware acceleration through a resolver system.

Who it’s for

Embedded systems developers who need to deploy machine learning models (such as MNIST or MobileNet) on low-power hardware using the ONNX format.

Highlights

  • Pure C99: Highly portable and can be dropped directly into existing projects as .c and .h files.
  • Hardware Acceleration: Supports hardware acceleration via a resolver array.
  • Embedded Friendly: Designed specifically for embedded devices with a small footprint.
  • Modern ONNX Support: Based on ONNX v1.17.0 with support for opset 24.