# ionorg/ion-sfu

Pure Go WebRTC SFU

Repository: https://github.com/ionorg/ion-sfu
Canonical: https://ross.abutalabs.com/products/ion-sfu
Language: Go
License: MIT
License Family: permissive
Topics: sfu, golang, webrtc, grpc, json-rpc
Last push: 2023-07-21T08:27:20+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2260, "days_push": 1139, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1097, forks 251 (observed 2026-08-28T04:03:34.669007+00:00)

## What it is
Ion SFU is a pure Go implementation of a WebRTC Selective Forwarding Unit (SFU) that routes audio, video, and datachannel streams to scale WebRTC sessions efficiently. It can be embedded directly as a Go library or accessed via gRPC or JSON-RPC signaling interfaces, and serves as the engine behind projects like LiveKit and Ion.

## Use cases
- build a scalable video conferencing server in go
- forward webrtc audio and video streams to many participants
- self-host a webrtc media server
- implement live streaming with selective forwarding
- detect who is speaking in a group call
- embed an sfu into an existing backend service via grpc
- run a webrtc echo test for testing connectivity

## When to choose
- you need a minimal, flexible WebRTC SFU with few external dependencies
- you want to embed SFU functionality directly in a Go service
- you need audio/video/datachannel forwarding with congestion control
- you prefer building your own signaling layer over a batteries-included platform

## When to avoid
- you want a complete, batteries-included real-time platform with SDKs - use LiveKit instead
- you need a maintained project with active development - the latest release is from 2023
- you need built-in signaling, recording, or TURN infrastructure out of the box
- your stack is not Go and you cannot run a separate media service

## Facets
- artifact type: library
- maturity: maintenance
- function: websocket, rpc, http-server, streaming, middleware
- domain: web-development, media, microservices
- platform: go, windows, self-hosted, cross-platform
- tags: webrtc, sfu, video-conferencing, audio-video-forwarding, real-time-communication, pion, grpc-signaling, json-rpc-signaling, live-streaming, media-server, real-time, linux, macos, docker

## Member repositories
- ionorg/ion-sfu (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:34.669007+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:46:35.142487+00:00, confidence not recorded.
  - readme: https://github.com/ionorg/ion-sfu (fetched 2026-08-28T04:03:34.669007+00:00, sha 4693e5366cb4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
