Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joyrex2001/grpc-perl
Perl 5 implementation of gRPC using the official gRPC shared library.
https://github.com/joyrex2001/grpc-perl
grpc grpc-library grpc-perl perl
Last synced: 26 days ago
JSON representation
Perl 5 implementation of gRPC using the official gRPC shared library.
- Host: GitHub
- URL: https://github.com/joyrex2001/grpc-perl
- Owner: joyrex2001
- License: apache-2.0
- Created: 2016-02-18T22:35:12.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-11-01T18:53:52.000Z (about 1 year ago)
- Last Synced: 2024-09-30T15:41:32.684Z (about 1 month ago)
- Topics: grpc, grpc-library, grpc-perl, perl
- Language: Perl
- Homepage:
- Size: 230 KB
- Stars: 33
- Watchers: 7
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-grpc - grpc-perl - Experimental Perl gRPC library supporting grpc client (Language-Specific / Perl)
README
# Grpc::XS / grpc-perl
## Overview
This repository contains source code for a perl 5 implementation of gRPC
transport layer. It binds to the official shared C library. The implementation
is heavily based on the php implementation of the [gRPC library](https://grpc.io).## Usage
This implementation only implements the grpc client, not the server. This
library also only implements the transport layer and is not intended to be used
directly. Instead it should be used in combination with a protocol buffer
implementation that support service rpc definitions. Currently the excellent
[Google::ProtocolBuffers::Dynamic](http://search.cpan.org/dist/Google-ProtocolBuffers-Dynamic/)
module is the best option for this.#### `fork()` compatibility
It's possible to fork processes which use `Grpc::XS`, but only if this
library is used exclusively inside child processes. This requires an
explicit (de)initialization, otherwise things will hang forever on
very first attemp to use anything grpc-related. Here is how it can be
done:```perl
Gprc::XS::destroy();
if (fork() == 0) { # in child
Grpc::XS::init();
# Grpc::XS can be used in this child without any problems
}
```## Installation
To install this package on ubuntu, install `libgrpc-dev` package first:
```bash
sudo apt-get install libgrpc-dev
```## See also
* https://metacpan.org/pod/Grpc::XS
* https://hub.docker.com/r/joyrex2001/grpc-perl