All Projects → ericbets → Danby

ericbets / Danby

A webserver that's also a grpc proxy for browsers

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Danby

Grpc Websocket Proxy
A proxy to transparently upgrade grpc-gateway streaming endpoints to use websockets
Stars: ✭ 395 (+1419.23%)
Mutual labels:  grpc, grpc-gateway, proxy
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (+376.92%)
Mutual labels:  microservice, grpc, proxy
Turbo
A lightweight microservice tool, turn your grpc|thrift APIs into HTTP APIs!
Stars: ✭ 275 (+957.69%)
Mutual labels:  microservice, grpc, grpc-gateway
Hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
Stars: ✭ 4,206 (+16076.92%)
Mutual labels:  microservice, grpc
Rocky
Full-featured, middleware-oriented, programmatic HTTP and WebSocket proxy for node.js
Stars: ✭ 357 (+1273.08%)
Mutual labels:  microservice, proxy
Grapi
😮 A surprisingly easy API server and generator in gRPC and Go
Stars: ✭ 364 (+1300%)
Mutual labels:  microservice, grpc
Furan
Scale out Docker builds
Stars: ✭ 339 (+1203.85%)
Mutual labels:  microservice, grpc
Chatengine
Open source mtproto server written in golang with compatible telegram client
Stars: ✭ 544 (+1992.31%)
Mutual labels:  microservice, grpc
Viper
Viper 是一个基于Anno微服务引擎开发的Dashboard项目、示例项目。Anno 底层通讯采用 grpc、thrift。自带服务发现、调用链追踪、Cron 调度、限流、事件总线等等
Stars: ✭ 402 (+1446.15%)
Mutual labels:  microservice, grpc
Grpc Jersey
gRPC<->Jersey bridge
Stars: ✭ 23 (-11.54%)
Mutual labels:  grpc, grpc-gateway
Kafka Pixy
gRPC/REST proxy for Kafka
Stars: ✭ 613 (+2257.69%)
Mutual labels:  grpc, proxy
Packetproxy
A local proxy written in Java
Stars: ✭ 352 (+1253.85%)
Mutual labels:  grpc, proxy
Grpc Example
An example of using Go gRPC and tools from the greater gRPC ecosystem together with the GoGo Protobuf Project.
Stars: ✭ 352 (+1253.85%)
Mutual labels:  grpc, grpc-gateway
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (+1223.08%)
Mutual labels:  microservice, grpc
Gubernator
High Performance Rate Limiting MicroService and Library
Stars: ✭ 609 (+2242.31%)
Mutual labels:  microservice, grpc
Rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Stars: ✭ 6,516 (+24961.54%)
Mutual labels:  microservice, grpc
Mortar
Mortar is a GO framework/library for building gRPC (and REST) web services.
Stars: ✭ 492 (+1792.31%)
Mutual labels:  microservice, grpc
Servicecomb Mesher
A high performance service mesh implementation written in go
Stars: ✭ 676 (+2500%)
Mutual labels:  microservice, proxy
Joyrpc
high-performance, high-extensibility Java rpc framework.
Stars: ✭ 290 (+1015.38%)
Mutual labels:  microservice, grpc
Grpc Proxy
gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead.
Stars: ✭ 571 (+2096.15%)
Mutual labels:  grpc, proxy

Danby

Lightweight approach to grpc microservices in the browser. No client side lib required.

Features

  • Bare minimum configuration required, uses helmet.js to set HTTP headers to sane defaults.
  • Proxy multiple grpc microservices to this webserver, as long as they have unique grpc service names.
  • Proxy multiple routes to other http servers. Eg. "/" to localhost:3000 might map to a react app.

Usage

To install using globally, try --unsafe-perm or --allow-root why

$ npm install danby

$ danby
Options:
  --help     Show help                                                 [boolean]
  --version  Show version number                                       [boolean]
  --port     http port                                                [required]
  --cfg      path to toml config file
  --cert     path to ssl/tls cert file
  --key      path to ssl/tls private key 
  --webroot  path to webroot, defaults to $PWD 
  --debug    debug output to console 

Example

Let's say you want to serve some static files with access to the grpc Greeter interface. Add this into the head tag of your chosen html file:

<script src="/grpc-api"></script>

Now modify config.toml.sample to suit your local environment. Then from the console, cd into the folder you want to serve:

$ cd website
$ danby --port 3000 --cfg config.toml

Now in the browser:

//Manage call creds by setting the metadata eg. Greeter.metadata["token"] = ...
Greeter.SayHello({name: 'user'}).then(function(resp) { console.log(resp); });

In your config file, try to use absolute paths for your .proto files otherwise the paths will be relative to the folder you started the webserver in, not the config file. Or start the webserver from your config folder, and use --webroot.

Todo

  • Streaming support
  • Let user choose between Promises or Callbacks
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].