Viking is a USB protocol for controlling the peripherals and IO pins of a microcontroller board for interfacing with external hardware.
It's designed for use with Signalspec, but is general-purpose and intended to be used with other languages like Rust and Python as well.
This repository provides the specification, design rationale, and Rust reference implementation.