The OpenMOQ Relay — a MoQT relay server based on moxygen (upstream: facebookexperimental/moxygen).
MoqxRelay is a hard fork of moxygen's
MoQRelay,
so the relay core can evolve independently while the lower-level moxygen pieces
stay libraries:
- MoQForwarder — fan-out engine
- MoqxCache — object cache
- MoQSession / MoQServer / MoQRelaySession — session/server infrastructure.
MoqxRelayServer extends MoQServer to wire MoqxRelay in as the
publish/subscribe handler. For moxygen's own architecture, see its
ARCHITECTURE.md.
Standard CMake preset build (CMake 3.23+, C++20, Ninja).
scripts/install-system-deps.sh # toolchain + system libs
scripts/configure.sh --moxygen prebuilt-with-fallback # get a moxygen, configure
scripts/build.sh # cmake --build build/default
scripts/test.sh # ctest over build/defaultbuild.sh and test.sh are thin wrappers that add a job count derived from
cores and free RAM (/scripts/lib/jobs.sh).
Profiles (default | san | tsan) are each script's first argument and map to
build/<profile>. --moxygen picks where moxygen comes from:
| Goal | Command |
|---|---|
| Build it | scripts/configure.sh --moxygen prebuilt-with-fallback && scripts/build.sh |
| Download only, never compile moxygen | scripts/configure.sh --moxygen prebuilt && scripts/build.sh |
| Compile moxygen / any rev or platform | scripts/configure.sh --moxygen from-source && scripts/build.sh |
| Local moxygen checkout | scripts/configure.sh --moxygen from-source --moxygen-dir /path && scripts/build.sh |
The three modes, the raw-cmake equivalents, and how to pick: /BUILD.md.
Pins live in /cmake/dependencies.cmake.
ccache is used automatically when it is on PATH.
- Build /BUILD.md · Run /RUNNING.md · Metrics /docs/metrics.md
- Design: /design/
Apache 2.0 — see /LICENSE.
