logo
ByteNet
Home
Initializing search
    ffrostfall/ByteNet
    • Home
    • Documentation
    ffrostfall/ByteNet
    • Home
        • definePacket
        • Primitives
        • Specials

    simple buffer-based networking

    In ByteNet, you don't need to worry about type validation, optimization, packet structure, etc. ByteNet does all the hard parts for you! Strictly typed with an incredibly basic API that explains itself, ByteNet makes networking simple, easy, and quick.

    Getting started Download

    practical example of a packet's definition

    packets.luau
    local ByteNet = require(path.to.ByteNet)
    
    return ByteNet.defineNamespace("example", function()
        return {
            vectorStringMap = ByteNet.definePacket({
                value = ByteNet.dataTypes.map(ByteNet.dataTypes.vec3(), ByteNet.dataTypes.string())
            })
        }
    end)
    

    example of sending a packet to all clients

    server.luau
    local packets = require(path.to.packets)
    
    packets.myPacket.sendToAll({
        [Vector3.new(1, 1, 1)] = "10x less bandwidth than a remote!",
        [Vector3.new(1, 2, 1)] = "oh wait, its way more than 10x less.",
    
        [Vector3.new(2, 1, 1)] = "depending on how you use your data,",
        [Vector3.new(1, 1, 2)] = "it could be 100x less!",
    })
    

    Not enough? here's more

    No more RemoteEvents

    ByteNet handles all instances for you; you don't need to worry about reliability type, parenting, etc

    - As low-level as you can get

    ByteNet lets you directly read/write data types such as uint32, buffers, in a way where the keys are abstracted away. Reap the benefits of a structured, strictly typed library, while retaining the benefits of hardcore optimization.
    Made with Material for MkDocs