Skip to content

Releases

v2.0.0-rc.13

Choose a tag to compare

@github-actions github-actions released this 14 Nov 22:15
045c98c

What's Changed

  • Player api by @TrixNEW in #2
  • feat: allow network stack latency markers to players by @TrixNEW in #3

Full Changelog: v1.0.0-rc.1...v2.0.0-rc.13

Bifrost 1.0.0-rc.1

Choose a tag to compare

@TrixNEW TrixNEW released this 11 Oct 00:05
8175604

First release candidate for Bifrost 1.0, a Minecraft: Bedrock Edition reverse proxy written in Zig 0.17.0.

Not yet tested against real backends with a real client; please report anything that breaks.

Highlights

  • Two session modes. passthrough relays each player's encrypted session untouched and works with any game version.
    managed terminates the session at the proxy (Minecraft 1.26.51, protocol 2193) and requires Microsoft-verified logins.
  • Transfers between backends in managed mode. The player stays on the old backend until the target has started the game,
    and their own entity ids stay the same on every backend.
  • Native plugin ABI v1, now frozen. A C header (include/bifrost_plugin.h) and a Zig SDK. Plugins get events, packet
    hooks, commands shown in client autocomplete, chat messages and background tasks. The full contract is in
    docs/plugin-abi.md. Plugins run in-process, so a crashing plugin takes the proxy down.
  • Multiple workers on Linux (SO_REUSEPORT), health-checked backends, and a server list showing the combined player count.

Changes since 0.3.0

  • Plugin host calls have defined thread rules. A new post call lets plugin threads run code on a player's worker.
  • Plugin tasks run on a fixed thread pool ([limits] plugin_task_threads). Tasks still queued at shutdown get CANCELED.
  • Plugin commands are added to the backend's command list, so clients get autocomplete for them.
  • New [limits] handshake_rate_per_ip (default 2000) for the newer RakNet's per-IP handshake limit.
  • RakNet now includes keepalive for idle backend connections, plus hardening fixes.
  • The default server-list advertisement now matches the protocol managed mode speaks.

Upgrading from 0.3.0

  • Plugins must be rebuilt against the 1.0 header. ABI v1 adds post, register_command_info and the WRONG_THREAD and
    CANCELED statuses.
  • transfer and spawn_task now return WRONG_THREAD when called from a plugin's own thread; post to the player first.
  • If you set motd in your config, update its protocol field to 2193 and version to 1.26.51 for managed mode.

Performance
On WSL2 with 12 CPUs, ReleaseFast, everything on one machine: 44.6k relayed round trips/s on one worker (146k on eight),
transfers at p50 33 ms, and 228 KiB RSS per passthrough player. Full numbers are in tests/bench/baseline.md.

New Contributors

Full Changelog: https://github.com/Bedrock-Phanatics/Bifrost/commits/v1.0.0-rc.1