Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mmchougule/kedro-grpc-server
Kedro gRPC Server is a Kedro plugin that creates a gRPC server for triggering and monitoring pipeline runs using a general-purpose RPC framework gRPC
https://github.com/mmchougule/kedro-grpc-server
grpc grpc-python grpc-server kedro kedro-plugin protobuf
Last synced: 3 months ago
JSON representation
Kedro gRPC Server is a Kedro plugin that creates a gRPC server for triggering and monitoring pipeline runs using a general-purpose RPC framework gRPC
- Host: GitHub
- URL: https://github.com/mmchougule/kedro-grpc-server
- Owner: mmchougule
- Created: 2020-09-04T19:26:46.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-09-04T22:58:40.000Z (over 4 years ago)
- Last Synced: 2024-03-26T00:44:44.180Z (10 months ago)
- Topics: grpc, grpc-python, grpc-server, kedro, kedro-plugin, protobuf
- Language: Python
- Homepage:
- Size: 5.78 MB
- Stars: 17
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# Kedro gRPC Server
[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)]()
[![Current Version](https://img.shields.io/badge/current%20version-0.1-yellow.svg)]()
[![Python Version](https://img.shields.io/badge/python-3.6%20%7C%203.7-blue.svg)]()
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)This is a Kedro plugin that creates a gRPC server for your kedro pipelines. Exposed RPC calls can be triggered using any of the programming languages that support gRPC.
Demo:
![gRPC server](https://github.com/mmchougule/kedro-grpc-server/blob/master/docs/images/kedro_grpc_server.gif)
![Go Kedro Client](https://github.com/mmchougule/kedro-grpc-server/blob/master/docs/images/go_client_kedro.gif)Kedro gRPC clients can be in many programming languages.
Some kedro client examples below that call RPCs on a gRPC server running in any kedro project:
- [Python](https://github.com/mmchougule/kedro-grpc-server/blob/master/grpc_client_examples/python/grpc_client.py)
- [Go](https://github.com/mmchougule/kedro-grpc-go-client/)
- [Scala](https://github.com/mmchougule/kedro-grpc-scala-client)
- [Java](https://github.com/mmchougule/kedro-grpc-java-client)
- [Node](https://github.com/mmchougule/kedro-grpc-node-client)
- C++
- C#
- Kotlin
- DartMore on [grpc.io](https://grpc.io)
- Code generation support in all gRPC frameworks makes it super easy to use for clients who may have a different tech stack and language preference. Simply sharing a kedro.proto file, clients can use their preferred programming language to generate strongly typed kedro clients in any of the languages mentioned above.
- Allowing engineers to natively integrate running of kedro pipelines with their preferred programming language.
- Getting status of kedro pipeline run as a streaming response through HTTP/2. gRPC provides first-class support for this.
- Getting all the benefits of gRPC
- And, enabling business users to interact with analytics from a front-end application and trigger actions or models (e.g. scoring model) on demand.## How do I install Kedro gRPC Server?
### Prerequisites
Kedro gRPC Server requires [Python 3.6+](https://realpython.com/installing-python/) and [Git](https://help.github.com/en/github/getting-started-with-github/set-up-git) to be setup.
#### Installation
You can install Kedro gRPC Server directly from GitHub with:
```bash
pip install kedro-grpc-server
```## How do I use Kedro gRPC Server?
To start the server, simply run the following command inside your Kedro project:
```bash
kedro server grpc-start
```You can specify the host through the flag like so:
```bash
kedro server grpc-start --host
```Similarly, you can set the port number using `--port`.
## Run
## gRPC API
Exposing 3 RPC calls:
`ListPipelines` -> Returns current list of pipelines
`Run` -> Runs a pipeline with or without arguments
`Status` -> Provides run status of a pipeline with run_id.
The response for this rpc call is a Server Streaming response of all logged events.## Contributing
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for:
* The contribution code of conduct
* The process for submitting pull requests## Versioning
We use [SemVer](http://semver.org/) for versioning. The best way to safely upgrade is to check our [release notes](RELEASE.md) for any notable breaking changes.