Skip to content
moq-devPublic

About

hang.live

Resources

Contributing

Stars

28 stars

Watchers

1 watching

Forks

Latest commit

 

History

376 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hang

Real-time communication platform built on Media over QUIC.

Try it at hang.live.

Architecture

Hang combines a closed-source application layer with an open-source media streaming library:

  • app — Web frontend built with SolidJS, Vite, and Tailwind CSS v4
  • api — Backend running on Cloudflare Workers with Hono and Drizzle ORM
  • native — Desktop/mobile app using Tauri v2 The frontend and backend share types via Hono RPC. Real-time media is streamed over WebTransport using the MOQ protocol, consumed as Bun workspaces from the pinned moq/ submodule.

Project Structure

app/        Web frontend (SolidJS + Vite)
api/        Backend API (Cloudflare Workers + Hono)
native/     Desktop/mobile app (Tauri v2)
dev/        Local relay server config

Prerequisites

Required:

  • bun — package manager and runtime
  • just — command runner
  • Rust — for the native app

Recommended:

  • Nix + direnv — handles all dependencies automatically via flake.nix

Getting Started

Clone the repo:

git clone --recurse-submodules https://github.com/moq-dev/hang.live.git
cd hang.live

With Nix + direnv (recommended):

direnv allow
just install
just dev

Without Nix:

just install
just dev

just dev starts five processes concurrently:

  • api — Cloudflare Workers dev server (via wrangler)
  • app — Vite dev server on port 1420
  • types — Watch API declarations for frontend RPC types
  • relay — MOQ relay server
  • auth — Local token verification service

Commands

Command Description
just install Install workspaces, decoder assets, and API declarations
just dev Run all dev servers
just check Run linting and type checks
just fix Auto-fix formatting and lint issues
just build Build all packages
just deploy Deploy the live API and app to Cloudflare
just native Run the native desktop app

MOQ (Media over QUIC)

Hang uses moq — an open-source library for real-time media streaming over WebTransport and QUIC. The @moq/* npm packages provide the protocol implementation, and the moq-relay binary (via nix flake) runs the local relay server. See moq.dev for full documentation.

License

Dual-licensed under MIT or Apache 2.0, at your option.

MoQ source dependency

This migration pins MoQ as the moq submodule until the room package is released. Clone with git clone --recurse-submodules, or run git submodule update --init in an existing checkout, then just install. The app uses the submodule's MoQ workspaces, so CI and local builds use the same source.

Contributing

See CONTRIBUTING.md for setup, checks, and the Quest workflow. The quest backlog tracks planned bugs and improvements.

About

hang.live

Resources

Contributing

Stars

28 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages