Code Monkey home page Code Monkey logo

kedro-grpc-server's Introduction

Kedro gRPC Server

Coverage Current Version Python Version Code style: 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 Go Kedro Client

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:

More on 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+ and Git to be setup.

Installation

You can install Kedro gRPC Server directly from GitHub with:

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:

kedro server grpc-start

You can specify the host through the flag like so:

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 for:

  • The contribution code of conduct
  • The process for submitting pull requests

Versioning

We use SemVer for versioning. The best way to safely upgrade is to check our release notes for any notable breaking changes.

kedro-grpc-server's People

Contributors

mmchougule avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ajaykhanna123

kedro-grpc-server's Issues

Add C++ example

Description

Add an example of triggering Kedro pipelines in CPP

Context

Allow C++ users to use Kedro natively

Possible Implementation

Check examples in other languages: https://github.com/mmchougule/kedro-grpc-go-client/

Checklist

Include labels so that we can categorise your issue

  • Add a "Component" label to the issue
  • Add a "Priority" label to the issue

[BUG] Missing license information

Description

Hi @mmchougule - I found this repo through kedro slack forums - and it looks intriguing.

Couple of questions.

  1. It's missing a license - and LEGAL_NOTICE.md is blank too ; So its unclear how it can be used.
  2. Are you planning to update or maintain this package ? Last version / release was 3 years ago.

Thank you & regards

References

LICENSE_MD = "LEGAL_NOTICE.md"

https://pypi.org/project/kedro-grpc-server/#history

Context

How has this bug affected you? What were you trying to accomplish?

Steps to Reproduce

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

Expected Result

Tell us what should happen

Actual Result

Tell us what happens instead

-- If you received an error, place it here.
-- Separate them if you have more than one.

Your Environment

Include as many relevant details about the environment you experienced the bug in

  • kedro_server and its dependencies versions (kedro server --version):
  • Python version used:
  • Operating system and version:

Checklist

Include labels so that we can categorise your issue

  • Add a "Component" label to the issue
  • Add a "Priority" label to the issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.