Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ni/grpc-labview

gRPC client and server support for LabVIEW
https://github.com/ni/grpc-labview

grpc labview

Last synced: about 17 hours ago
JSON representation

gRPC client and server support for LabVIEW

Awesome Lists containing this project

README

        

# gRPC Support for LabVIEW

[![Image](https://www.vipm.io/package/ni_lib_labview_grpc_library/badge.svg?metric=installs)](https://www.vipm.io/package/ni_lib_labview_grpc_library/) [![Image](https://www.vipm.io/package/ni_lib_labview_grpc_library/badge.svg?metric=stars)](https://www.vipm.io/package/ni_lib_labview_grpc_library/)

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](docs/QuickStart.md) and [Basic Tutorial](docs/BasicsTutorial.md) 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](docs/Certificates.md) for more information.

## Building the server binaries
To build the binaries for the scripting tool or the gRPC server see [Building](docs/Building.md) for instructions.

## Contributing
Contributions to grpc-labview are welcome from all. See [Contributing](CONTRIBUTING.md) for instructions.