BinBuffer - Easy to use buffering / serialization library
Easy to use | High Perfomance | Buffering | Serialization
Get BinBuffer | GitHub | Docs
Why BinBuffer?
- Easy to use API that’s intuitive and easy to use
- Beautiful developer experience that just makes sense
- High Perfomance
Quick start
Get module from Creator Marketplace and you’re ready in 2 minutes
local BinBuffer = require(path.to.BinBuffer)
local my_buffer = BinBuffer.create({
size = BinBuffer.bytes(10), -- <- initial size, grows automatically
})
BinBuffer.writers.addString(my_buffer, "This is a string")
BinBuffer.writers.addNumber(my_buffer, 4)-- automatic type: Uint8
BinBuffer.writers.addVector2F24(my_buffer, Vector2.new(34, 10))
print(BinBuffer.read(my_buffer)) -- {[1] = "This is a string", [2] = 4, [3] = 34, 10}
BinBuffer.clear(my_buffer) -- <- clears buffer but not destroys
BinBuffer.destroy(my_buffer) -- <- destroy buffer when you dont need a buffer
local my_basic_buffer = buffer.create(10) -- <- basic buffer
buffer.writeu8(my_basic_buffer, 0, BinBuffer.NUMBER_U16) -- <- marker for BinBuffer
buffer.writeu16(my_basic_buffer, 1, 999) -- <- value
local bin_buffer_object = BinBuffer.fromBuffer(my_basic_buffer)
print(BinBuffer.read(bin_buffer_object)) -- <- {[1] = 999}
But… But… Wait , Why BinBuffer if we have buffer library by roblox?
- Easy to use api for begginers
- many luau types supports in BinBuffer
- idk what else to say lol
Which types BinBuffer suppots 
Uint8, Uint16, Uint32, Int8, Int16, Int32, Float16, Float24, Float32, double(Float64),STRING, BOOL, VECTOR3, VECTOR2, CFRAME, COLOR3, UDim, UDim2,
RECT, NUMBER_RANGE, NUMBER_SEQUENCE, COLOR_SEQUENCE, BRICK_COLOR, INSTANCES, TABLES, VECTOR2F16, VECTOR2F24, VECTOR2I16, VECTOR3F16, VECTOR3F24, VECTOR3I16, CFRAMEF16U8, CFRAMEF24U16, CFRAMEF24U8, CFRAMEF24U8
THIS LIBRARY IS NOT PERFECT, PLIS REPORT ANY BUGS, ITS HARD TO FIX
- YES
- NAH
- “buffer acces out of bounds” still using basic buffer library💀
- maybe, maybe