Skip to content

ni/grpc-labview

Repository files navigation

gRPC Support for LabVIEW

Image Image

This repo contains necessary C++ code and support VIs to implement a gRPC server and client in LabVIEW. You can either use the service as defined to implement a generic server via gRPC or use the implementation as a pattern to implement a gRPC service of your design.

The project supports Windows, Linux, and Linux RT.

Minimum Compatible LabVIEW Version

LabVIEW source is saved with LabVIEW 2019.

Note: This project is not yet complete

  • Not all .proto data types are supported
  • The VI generated has not been fully implemented when updating the generated code with the .proto - VIs need to be implemented by hand to match the .proto file in certain cases
  • Extensive testing is not complete
  • The names of the various generated methods, events, and VIs are subject to change until the 1.0 release
  • This project is not supported by NI Technical Support

User Guide

If you would like to use LabVIEW gRPC in your project and want to where to start: Quick Start and Basic Tutorial is a great place to start. This covers step by step guide on,

  • how to create a simple proto
  • generate the server code
  • generate the client code
  • make modification to the generated code
  • run the server and client program

Examples

Example servers are located in the examples foldes in the releases.

  • helloworld - Example server and client program which implements a simple Unary method. You can run this LabVIEW program along with Python server or client as well
  • route_guide - Example server and client program which implement unary, server streaming, client streaming and bidirectional functions

SSL/TLS Support

The connection to the server can be secured using TLS (Server provided certificates) or Multual TLS (Client and Server provided certificates). See Certificates for more information.

Building the server binaries

To build the binaries for the scripting tool or the gRPC server see Building for instructions.

Contributing

Contributions to grpc-labview are welcome from all. See Contributing for instructions.