ByteNet is an networking library which takes your Luau data, and serializes it into buffers. On the other end, ByteNet deserializes your data, and then feeds it back to your Luau code. 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. There’s very few concepts you need to grasp in order to use ByteNet; it has an incredibly minimalistic & simplistic, yet powerful API.
Installation
You can install ByteNet on Wally, or through the latest release’s .rbxm file.
Performance
ByteNet performs incredibly well compared to non-buffer based libraries like BridgeNet2. This is because ByteNet has a custom serializer that takes your Luau data and transforms it into a buffer, sending that and deserializing it on the other side.
Further contact
You can contact me directly under the ByteNet thread in the Roblox OSS Server.
License
This project is under the MIT license! so, it’s open source.
This seems interesting. Currently the network library I’m using (Red) doesn’t support unreliable remotes. I find the method of defining Packet objects a little odd, I feel it would be better to name them something like “channels” or “ports” since from what the documentation states, that is what they seem to behave like.
The one issue I have with it is that while it can be useful for sending serialized information in a compact way, it seems impossible to have a key value pair where the value is a table, and because of that I don’t see this as a general purpose library. I imagine you could do arrays or dictionaries in the buffers somehow since it would be similar buffer allocation to how I imagine you allocate space for strings, since the strings could be any length.
it’s basically a library for reducing network bandwidth, it compresses data (serializes) before sending it over to the network, and once it arrives it is then decompressed to be read by scripts.
It’s very useful for when you need to be sending data every frame, even more useful for unreliable remotes since they have a 900 byte limit per packet.
I usually have bad network from Etisalat by e&, so I don’t know if it will help
I think sending data every frame causes memory leaks, also I don’t really use unreliable remotes, the only one I have is the SetLookAngles which is meant for MaximumADHD’s Realism
This is Roblox, sending a number and a string, 200 times a frame.
This is ByteNet’s serialization, using a uint8. It’s not even a fair comparison, ByteNet is sending outright way smaller data because it gives you way more control.
Hi, im interested in using your module because of the unreliable remotes. Could you maybe tell me how this is superior to BridgeNet2 or FastNet2? My usecase would be lots of remotes every frame for replication (CFrame related). And is this game-ready?
@ffrostfall Great library, love the implementation; some of the best net optimisations i’ve seen for rblx
Do you have any ETA for a roblox-ts NPM package for this, would love to use it in a project of mine, but i dont want to ditch rbx-ts.
An NPM package would be heavenly