Scalable WebRTC Signaling Server with ayame-like protocol.

Related tags

webrtc webrtc-signaling
Overview

ayu

Go Reference Go Report Card

ayu is WebRTC Signaling Server with ayame-like protocol.

  • Scalable: ayu uses Redis to store room states, so it can be used on serverless platforms (e.g. Cloud Run).
  • Composable: ayu provides a net/http compatible WebSocket handler.
  • Customizable: ayu provides authentication and logger interface, which can be customized.
  • No vendor lock-in: ayu depends only on Redis. It is not locked in to any specific cloud provider.

Usage

In the following example, ws://localhost:8080/signaling will be the endpoint of the signaling server. Please see ayame-spec for details.

package main

import (
	"log"
	"net/http"

	"github.com/castaneai/ayu"
	"github.com/go-redis/redis/v8"
)

func main() {
	redisClient := redis.NewClient(&redis.Options{Addr: "x.x.x.x:6379"})
	sv := ayu.NewServer(redisClient)
	defer sv.Shutdown()
	http.Handle("/signaling", sv)

	addr := ":8080"
	log.Printf("listening on %s...", addr)
	log.Fatal(http.ListenAndServe(addr, nil))
}

Testing

make test

License

Apache-2.0

Owner
castaneai
SOCKET STREAM SECURITY
castaneai
Pure Go implementation of the WebRTC API

Pure Go implementation of the WebRTC API

Pion 7.5k Jul 23, 2021
Scalable WebRTC Signaling Server with ayame-like protocol.

ayu ayu is WebRTC Signaling Server with ayame-like protocol. Scalable: ayu uses Redis to store room states, so it can be used on serverless platforms

castaneai 14 Jul 19, 2021
null

chrome-webrtc-packet-log-parser Project status At this point the project is primerly intended to be used by checking it out and modifying main.go, how

Pro Emergotech Ltd. 22 Jun 7, 2021
A toy MMO example built using Ebiten and WebRTC DataChannels (UDP)

Ebiten WebRTC Toy MMO ⚠️ This is a piece of incomplete hobby work and not robust. Please read the "Why does this project exist?" section. What is this

Jae Bentvelzen 8 Jun 3, 2021
gRPC over WebRTC

gRPC over WebRTC Just a proof of concept, please be kind. How to Start all the things Client, create-react-app + grpc-web signaling + webrtc extension

Jean-Sebastien Mouret 227 Jul 10, 2021
Deskreen turns any device with a web browser into a secondary screen for your computer

Deskreen Website: https://deskreen.com ▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage) Deskreen turns an

Paul Pavlo Buidenkov 11.1k Jul 17, 2021
Playing with go, gobot & pion

Tello-WebRTC-FPV Lately there were a couple of articles about pion and it looked very cool, but I didn't know what I could do with it. I then remember

null 32 Jun 28, 2021
Group peer to peer video calls for everyone written in Go and TypeScript

Peer Calls v4 WebRTC peer to peer calls for everyone. See it live in action at peercalls.com. The server has been completely rewriten in Go and all th

Peer Calls 947 Jul 25, 2021
Distributed RTC System by pure Go and Flutter

ION is a distributed real-time communication system, the goal is to chat anydevice, anytime, anywhere! Distributed Real-time Communication System ION

Pion 3.1k Jul 22, 2021
Package for downloading things from a string URL using a variety of protocols.

go-getter is a library for Go (golang) for downloading files or directories from various sources using a URL as the primary form of input.

HashiCorp 1.2k Jul 16, 2021
🚀Gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.

gev 中文 | English gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. Support custom protocols to quickly and easily bui

徐旭 1.2k Jul 16, 2021
A yet to be voice call application in terminal. with the power of go and webRTC (pion).

Kenny I'm just trying to make a cli operated voice call chat application using go with help of webRTC and PortAudio. It might stay a Work In Progress

Mohammad Fatemi 32 Jul 4, 2021
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

frp README | 中文文档 What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it s

null 47k Jul 22, 2021