#quic #bevy #networking #gamedev #bevy-plugin #game-engine #game-networking

bevy_quicsilver

Implementation of the QUIC transport protocol for bevy_ecs, using quinn_proto

2 releases

0.1.1 May 20, 2024
0.1.0 May 20, 2024

#1677 in Game dev

Apache-2.0

75KB
1.5K SLoC

bevy_quicsilver

crate documentation

A networking plugin for using the QUIC transport layer protocol with the Bevy game engine.

This crate integrates the quinn_proto library, a pure-rust implementation of QUIC, with the Bevy ECS, providing an idiomatic ecs-based API.

Development Status

This library is still very new and in active development. Although most of the core functionality is in place, it's not in a usable state yet.

Supported Bevy Versions

  • 0.13.*

Features

Ultimately, bevy_quicsilver doesn't offer anything more complicated than sending and receiving raw bytes. It is intended to be a foundation ontop of which other libraries implement higher-level features, by abstracting the complexity of the transport protocol behind an ecs-based API.

That is not to say it is entirely barebones though, as a large part of the appeal of QUIC as a transport protocol for games is the wide variety of desireable features that are baked into the spec:

  • Both unreliable messages and reliable-ordered streams
  • Pluggable cryptography, with a standard implementation powered by rustls and ring
  • Head-of-line blocking control and stream bandwidth sharing
  • Simultaneous client/server operation
  • IPv4 and IPv6 support
  • Cross-platform

Dependencies

~25–35MB
~697K SLoC