Skip to content
This repository has been archived by the owner on May 28, 2019. It is now read-only.

A RakNet reliable UDP transport library using strict Netty patterns.

License

Notifications You must be signed in to change notification settings

yesdog/RakNetServer

 
 

Repository files navigation

RakNetServer

Build Status Known Vulnerabilities codecov Discord Chat

High performance fork of RakNetServer targeting unreliable and rate-limited client connections. It provides strict netty style server and client channels.

This implementation uses Netty channels to provide a fast and effective RakNet server, offering the full feature set of the transport protocol, while providing room for extension with any plugins or custom behavior.

Examples

See the test case here. (Simple example coming soon)

Features

  • Recylable objects:
    • Heavily used objects are recycled.
    • Reduces GC pressure.
    • Instrumented with Netty leak detection.
  • 0-copy buffer interactions:
    • Retained buffer references throughout.
    • Composite buffers used for encapsulation and defragmentation.
  • Easy-to-use data streaming interface:
    • Configurable packet ID used for raw ByteBuf writing and reading.
    • Extensible to allow for multiple packet ID and channel configurations.
    • True to Netty form, the pipeline can be modified and augmented as needed.
  • Advanced flow control
    • Back pressure signals useful for buffer limiting when client is overloaded.
    • Pending frame-set limits reduce unnecessary resends during high transfer rates.
    • Resend priority based on frame sequence so you get older packets faster.
  • Automated flush driver
    • Recommended to write to pipeline with no flush.
    • Flush cycles condense outbound data for best use of MTU.

Maven Use (at CodeMC)

    <dependencies>
        <dependency>
            <groupId>network.ycc</groupId>
            <artifactId>raknet</artifactId>
            <version>0.5</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>codemc-repo</id>
            <url>https://repo.codemc.org/repository/maven-public</url>
        </repository>
    </repositories>

About

A RakNet reliable UDP transport library using strict Netty patterns.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%