warp-grpc: A minimal gRPC server on top of Warp.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Please see the README on Github at https://github.com/githubuser/warp-grpc#readme


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.1, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.0.1
Change log ChangeLog.md
Dependencies base (>=4.7 && <5), binary, bytestring, case-insensitive, http-types, http2-grpc-types (>=0.2), proto-lens, wai, warp (>=3.2.24 && <3.3), warp-tls [details]
License BSD-3-Clause
Copyright 2017 Lucas DiCioccio
Author Lucas DiCioccio
Maintainer lucas@dicioccio.fr
Category Networking
Home page https://github.com/lucasdicioccio/warp-grpc#readme
Bug tracker https://github.com/lucasdicioccio/warp-grpc/issues
Source repo head: git clone https://github.com/lucasdicioccio/warp-grpc
Uploaded by LucasDiCioccio at 2018-09-03T21:24:50Z

Modules

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for warp-grpc-0.1.0.1

[back to package description]

warp-grpc

A gRPC server implementation on top of Warp's HTTP2 handler. The lib also contains a demo sever using the awesome grpcb.in Proto. The current release is an advanced technical demo, expect a few breaking changes.

Design

The library implements gRPC using a WAI middleware for a set of gRPC endpoints. Endpoint handlers differ depending of the streaming/unary-ty of individual RPCs. Bidirectional streams will be supported next.

There is little specification around the expected allowed observable states in gRPC, hence the types this library presents make conservative choices: unary RPCs expect an input before providing an output. Client stream allows to return an output only when the client has stopped streaming. Server streams wait for an input before starting to iterate sending outputs.

Usage

Generate some proto-lens code from .proto files, ideally in a separate library. Import this library and the generated proto-lens code to implement handlers for the service stanzas defined in the .proto files (see Haddocks). Finally, serve warp over TLS`.

Next steps

Limitations