Coder Social home page Coder Social logo

http2-grpc-haskell's Introduction

haskell-grpc-native

This organization and repository aim at providing unofficial gRPC implementations for Haskell using native libraries.

Context

Haskell is not an officially supported gRPC language. This repository offers a set of libraries that are compatible with gRPC. A main goal of this initiative is that an intermediate Haskell developper should find the packages reasonably easy to install and easy to tinker with.

Repo organization

The code is split in a number of packages following this three ideas:

  • share a common types packages
  • have server and client-specific packages
  • add a serialization-library specific packages

Usage

We will soon provide examples in this repository. We are currently migrating repositories from scattered places into this organization.

Using proto-lens

First, you'll need both protoc and proto-lens-protoc installed.

In short protoc is a protobuf compiler which calls to external program (in our case proto-lens-protoc) to generate an output (in our case, Haskell code that is part of a library). This process is depicted in the following picture.

build with proto-lens

Note that the version of proto-lens-protoc will determine the version of proto-lens-runtime that you need to import in your project.

Recommendation: you can share the generated-code between server and clients. Hence, we propose to bundle all generated Haskell code in one library that depends on proto-lens-runtime as one types package. Then import this types package in your client/server applications.

Using proto3-wire

Alternatives

There is a low-level API in the official gRPC repository. There also is a more-complete API which uses a binding to the C-library and which is supported by AwakeSecurity.

http2-grpc-haskell's People

Contributors

lucasdicioccio avatar serras avatar proofofkeags avatar dommayhew avatar akshaymankar avatar ethercrow avatar coderfromhere avatar alexfmpe avatar cb372 avatar tochicool avatar

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.