The backend for @yomo/presencejs ⚡️ made realtime web applications edge-aware by YoMo

Overview

yomo-presence-backend

The backend for @yomo/presencejs

🔨 Dev on local

0. Prerequisites

Install Go

1. Install YoMo CLI

$ go install github.com/yomorun/cli/[email protected]

See YoMo CLI for details.

2. Start YoMo Zipper

$ yomo serve -c ./example/single-node/workflow.yaml
2022-01-13 16:44:28.015 [yomo:zipper] Listening SIGTERM/SIGINT...
2022-01-13 16:44:28.027 [core:server] ✅ [YoMoZipper] Listening on: [::]:9000, QUIC: [v1 draft-29], AUTH: [None]

3. Start Presence Websocket Server

$ PRESENCE_SENDER=localhost:9000 PRESENCE_RECEIVER=localhost:9000 go run ./cmd/main.go
2022/01/13 16:45:08 Starting websocket server 0.0.0.0:7000...
------------Receiver init------------ zipper=localhost:9000
2022/01/13 16:45:08 [core:client]  has connected to yomo-source (localhost:9000)
[source] ✅ Connect to YoMo-Zipper
2022/01/13 16:45:08 [core:client]  has connected to PresenceHandler (localhost:9000)

4. Run the Cursor Chat example in local

Checkout yomo-react-cursor-chat-example and change the socketURL to ws://localhost:7000.

Then run the example:

$ npm run dev

Deployment

1. Install YoMo CLI Binary on server.

$ curl -fsSL "https://bina.egoist.sh/yomorun/cli?name=yomo" | sh

2. Start the Presence Receiver&Sender servers

2.1 Upload the config files to server

The following steps are based on Ubuntu for instance.

Upload the folders example/mesh-nodes and deploy/systemd to your server.

2.2 Start Presence-Reciever Server

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presence-receiver.service
$ sudo systemctl start presence-receiver.service

2.3 Start Presence-Sender Server

Note: you have to upload the Mesh config file to your webserver (or S3), see deploy/dev.json for example.

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presence-sender.service
$ sudo systemctl start presence-sender.service

3. Start the Presence WebSocket Server

3.1 Build the presenced binary and upload it to your server

$ make build-linux

3.2 Start Presence-WebSocket Server

$ sudo systemctl enable /home/ubuntu/presence-backend/systemd/presenced.service
$ sudo systemctl start presenced.service
Issues
Owner
YoMo
Geo-distributed system Framework
YoMo
A small and basic service to echo requests made via websockets

Ping Service A small and basic service to echo requests made via websockets, can be useful for measuring latency between clients and this service. Run

Linux Foundation Certification 0 Nov 18, 2021
This application shows how to use the websocket package to implement a simple web chat application.

Chat Example This application shows how to use the websocket package to implement a simple web chat application. Running the example The example requi

null 0 Nov 14, 2021
Websockets - Chaotic Web Sockets With Golang

Chaotic Web Sockets The intention of this project is to show the behavior of a s

null 0 Jan 21, 2022
An edge-native container management system for edge computing

SuperEdge is an open source container management system for edge computing to manage compute resources and container applications in multiple edge regions. These resources and applications, in the current approach, are managed as one single Kubernetes cluster. A native Kubernetes cluster can be easily converted to a SuperEdge cluster.

SuperEdge 739 Jan 21, 2022
Provide cloud-edge message synergy solutions for companies and individuals.the cloud-edge message system based on NATS.

Swarm This project is a cloud-edge synergy solution based on NATS. quikly deploy cloud deploy on k8s #pull the project. git clone https://github.com/g

null 1 Jan 11, 2022
YoMo 31 Jan 17, 2022
☔🎀 Translation made with simplicity, yet robust. ~ Backend portion of Arisu, made in Go.

☔ Tsubaki Website • Discord • Discussions Translation made with simplicity, yet robust. Made with ?? using TypeScript, React with Next.js. Tsubaki is

Arisu 0 Jan 13, 2022
Graphik is a Backend as a Service implemented as an identity-aware document & graph database with support for gRPC and graphQL

Graphik is a Backend as a Service implemented as an identity-aware, permissioned, persistant document/graph database & pubsub server written in Go.

null 295 Jan 21, 2022
xlog is a logger for net/context aware HTTP applications

⚠️ Check zerolog, the successor of xlog. HTTP Handler Logger xlog is a logger for net/context aware HTTP applications. Unlike most loggers, xlog will

Olivier Poitrey 135 Nov 22, 2021
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

Consul Website: https://www.consul.io Tutorials: HashiCorp Learn Forum: Discuss Consul is a distributed, highly available, and data center aware solut

HashiCorp 23.9k Jan 14, 2022
🌐 (Web 3.0) Pastebin built on IPFS, securely served by Distributed Web and Edge Network.

pastebin-ipfs 简体中文 (IPFS Archivists) Still in development, Pull Requests are welcomed. Pastebin built on IPFS, securely served by Distributed Web and

Mayo/IO 153 Jan 12, 2022
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.

Dapr is a portable, serverless, event-driven runtime that makes it easy for developers to build resilient, stateless and stateful microservices that run on the cloud and edge and embraces the diversity of languages and developer frameworks.

Dapr 16.7k Jan 22, 2022
🦖 Streaming-Serverless Framework for Low-latency Edge Computing applications, running atop QUIC protocol, engaging 5G technology.

YoMo YoMo is an open-source Streaming Serverless Framework for building Low-latency Edge Computing applications. Built atop QUIC Transport Protocol an

YoMo 729 Jan 23, 2022
Simplified network and services for edge applications

English | 简体中文 EdgeMesh Introduction EdgeMesh is a part of KubeEdge, and provides a simple network solution for the inter-communications between servi

KubeEdge 85 Jan 17, 2022
A game server side framework with both web API and realtime communication.

HAYABUSA Framework Hayabusa is a server side framework for Japan-like social games. Easy to understand and use for beginners Powerful controller, flex

はやぶさクラウド 21 Jan 13, 2022
Broilerplate - A template project for new Go web backend applications

Broilerplate A template project for new Go web backend applications. Can be used

Ferdinand Mütsch 2 Jan 8, 2022
A fast data generator that's multi-table aware and supports multi-row DML.

If you need to generate a lot of random data for your database tables but don't want to spend hours configuring a custom tool for the job, then datage

Coding Concepts 45 Dec 22, 2021
gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore.

gpool - a generic context-aware resizable goroutines pool to bound concurrency. Installation $ go get github.com/sherifabdlnaby/gpool import "github.c

Sherif Abdel-Naby 82 Nov 23, 2021
xmux is a httprouter fork on top of xhandler (net/context aware)

Xmux Xmux is a lightweight high performance HTTP request muxer on top xhandler. Xmux gets its speed from the fork of the amazing httprouter. Route par

Olivier Poitrey 93 Jan 9, 2022
Pomerium is an identity-aware access proxy.

Pomerium is an identity-aware proxy that enables secure access to internal applications. Pomerium provides a standardized interface to add access cont

null 2.9k Jan 17, 2022
A collection of (ANSI-sequence aware) text reflow operations & algorithms

reflow A collection of ANSI-aware methods and io.Writers helping you to transform blocks of text. This means you can still style your terminal output

Christian Muehlhaeuser 277 Jan 12, 2022
depaware makes you aware of your Go dependencies

depaware depaware makes you aware of your Go dependencies. It generates a list of your dependencies which you check in to your repo: https://github.co

Tailscale 368 Jan 7, 2022
Content aware image resize library

Caire is a content aware image resize library based on Seam Carving for Content-Aware Image Resizing paper. How does it work An energy map (edge detec

Endre Simo 9.8k Jan 21, 2022
self-aware Golang profile dumper[beta]

holmes WARNING : holmes is under heavy development now, so API will make breaking change during dev. If you want to use it in production, please wait

MOSN 535 Jan 14, 2022
Syntax-aware grep for PHP code.

phpgrep Syntax-aware grep for PHP code. This repository is used for the library and command-line tool development. A good source for additional utilit

Iskander (Alex) Sharipov 201 Dec 6, 2021
Syntax-aware Go code search, based on the mvdan/gogrep

gogrep WIP: this is an attempt to move modified gogrep from the go-ruleguard project, so it can be used outside of the ruleguard as a library. Acknowl

Iskander (Alex) Sharipov 22 Jan 9, 2022
A lockout aware password sprayer for golang

Crimson-Spray Crimson-Spray is a lockout aware password sprayer for active direc

iLightThings 12 Jan 6, 2022
Cost-aware network traffic analysis

Traffic Refinery Overview Traffic Refinery is a cost-aware network traffic analysis library implemented in Go For a project overview, installation inf

null 2 Jan 10, 2022
Chainrand contract + web frontend + web backend

Chainrand-web This repo contains the implementation of Chainrand. https://chainrand.io Smart Contract Contains functionality to tie a Chainlink VRF to

Chainrand 1 Dec 8, 2021