Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome & Goals

viva-genicam provides pure Rust building blocks for the GenICam ecosystem supporting GigE Vision and USB3 Vision, with first-class support for Windows, Linux, and macOS.

Who is this book for?

  • End-users building camera applications who want a practical high-level API and copy-pasteable examples.
  • Contributors extending transports, GenApi features, and streaming – who need a clear mental model of crates and internal boundaries.

What works today

  • GigE Vision: GVCP discovery, GVSP streaming with resend and reassembly, events, action commands, chunk parsing, FORCEIP, persistent IP configuration.
  • USB3 Vision: device discovery, GenCP register I/O, bulk-endpoint streaming, async frame iterator.
  • GenApi: NodeMap with all standard node types (Integer, Float, Enum, Boolean, Command, Category, String, SwissKnife, Converter), pValue delegation, selectors, node metadata and visibility filtering.
  • CLI (viva-camctl): discovery, feature get/set, streaming, events, chunks, benchmarks, IP configuration.
  • Service bridge: expose cameras over Zenoh for genicam-studio.

The protocol implementations follow the published EMVA specifications and are validated against built-in fake camera simulators (190+ automated tests). Testing against physical cameras from different manufacturers is ongoing – bug reports and compatibility feedback are welcome.

How this book is organized

  • Start with Quick Start to build, test, and run the first discovery.
  • Read the Primer and Architecture to get the big picture.
  • Use Crate Guides and Tutorials for hands-on tasks.
  • See Networking and Troubleshooting when packets don’t behave.