All Projects → jsmouret → Grpc Over Webrtc

jsmouret / Grpc Over Webrtc

gRPC over WebRTC

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Grpc Over Webrtc

Ion Sfu
Pure Go WebRTC SFU
Stars: ✭ 258 (+17.27%)
Mutual labels:  grpc, webrtc
Vosk Server
WebSocket, gRPC and WebRTC speech recognition server based on Vosk and Kaldi libraries
Stars: ✭ 277 (+25.91%)
Mutual labels:  grpc, webrtc
Gb28181.solution
Linux/Win/Docker/kubernetes/Chart/Kustomize/GB28181/SIP/RTP/SDP/WebRTC/作为上下级域/平台级联互联
Stars: ✭ 323 (+46.82%)
Mutual labels:  grpc, webrtc
Aiortc
WebRTC and ORTC implementation for Python using asyncio
Stars: ✭ 2,706 (+1130%)
Mutual labels:  webrtc
Hivemq Mqtt Tensorflow Kafka Realtime Iot Machine Learning Training Inference
Real Time Big Data / IoT Machine Learning (Model Training and Inference) with HiveMQ (MQTT), TensorFlow IO and Apache Kafka - no additional data store like S3, HDFS or Spark required
Stars: ✭ 204 (-7.27%)
Mutual labels:  grpc
Owt Client Native
Open WebRTC Toolkit client SDK for native Windows/Linux/iOS applications.
Stars: ✭ 213 (-3.18%)
Mutual labels:  webrtc
Webrtc Video Broadcast
WebRTC video/audio broadcast
Stars: ✭ 217 (-1.36%)
Mutual labels:  webrtc
Ascii
👾 ASCII Roulette :: ascii art video chat on the cli
Stars: ✭ 202 (-8.18%)
Mutual labels:  webrtc
Mu Haskell
Mu (μ) is a purely functional framework for building micro services.
Stars: ✭ 215 (-2.27%)
Mutual labels:  grpc
Hello Auth Grpc
two grpc microservices with mutual TLS and token authentication in Go
Stars: ✭ 208 (-5.45%)
Mutual labels:  grpc
Webrtc server node
videoCall VideoConference 视频通话 视频会议
Stars: ✭ 208 (-5.45%)
Mutual labels:  webrtc
Webudp
Minimal WebRTC datachannel server
Stars: ✭ 204 (-7.27%)
Mutual labels:  webrtc
Clay
Proto-first minimal server platform for gRPС+REST+Swagger APIs
Stars: ✭ 212 (-3.64%)
Mutual labels:  grpc
React Discord Clone
Discord Clone using React, Node, Express, Socket-IO and Mysql
Stars: ✭ 198 (-10%)
Mutual labels:  webrtc
Siprtcproxy
网关服务:Sip与Rtc互通,实现Web,Android,iOS,小程序,SIP座机,PSTN电话,手机互通。
Stars: ✭ 217 (-1.36%)
Mutual labels:  webrtc
Terraform Plugin Sdk
Terraform Plugin SDK enables building plugins (providers) to manage any service providers or custom in-house solutions
Stars: ✭ 201 (-8.64%)
Mutual labels:  grpc
Cloud Morph
Decentralize, Self-host Cloud Gaming/Application
Stars: ✭ 207 (-5.91%)
Mutual labels:  webrtc
Rules protobuf
Bazel rules for building protocol buffers and gRPC services (java, c++, go, ...)
Stars: ✭ 206 (-6.36%)
Mutual labels:  grpc
Grpc Go
The Go language implementation of gRPC. HTTP/2 based RPC
Stars: ✭ 15,042 (+6737.27%)
Mutual labels:  grpc
Core Grpc
C# Grpc驱动封装,基于Consul实现服务注册服务发现,支持dotnetcore / framework,可快速实现基于Grpc的微服务,内部有完整案例,包含服务端Server 客户端 Client,core+grpc, netcore+grpc, dotnetcore+grpc
Stars: ✭ 209 (-5%)
Mutual labels:  grpc

gRPC over WebRTC

Just a proof of concept, please be kind.

How to

  1. Start all the things

    • Client, create-react-app + grpc-web signaling + webrtc extensions

        cd client
        yarn
        yarn start
      
    • Client v2, same but using Improbable version with client and bidi-streaming

        cd client-improbable
        yarn
        yarn start
      
    • Server, grpc server + grpc-web signaling + pion/webrtc

        cd server
        go run .
      
  2. Click on buttons in your browser

  3. Profit!

Notes

Regular gRPC client/server are implemented in client/src/echo.tsx and server/echo.go. They should look like business as usual.

To simplify establishing the connection, this uses a simple grpc-web api defined by signaling.proto. It expects to run on localhost so there is no fancy ICE candidate exchange, that would be out of scope.

For the grpc-web client, the magic happens in client/src/grtc/adapter.ts which introduces a WebRtcClientBase to replace GrpcWebClientBase.

For the improbable client, instead of using a new transport which manipulates chunks, client-improbable/src/grpc/client.ts dispatches between the original GrpcClient and WebRtcClient. The other files in client-improbable/src/grpc are just linking to that new client function.

References

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].