{"id":"sumer9999dev/fastpacket","name":"fastpacket","scope":"sumer9999dev","platform":"roblox","description":"https://github.com/SUMER9999dev/FastPacket","version":"1.0.5","latest":"1.0.5","versions":["1.0.4","1.0.5"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"163ef0c224acb197164a6de28b887824aead0ec64b9b79a52d66be5384a48951","likes":0,"downloads":0,"install":"forest install sumer9999dev/fastpacket","url":"https://forest.dev/p/roblox/sumer9999dev/fastpacket","files":"https://api.forest.dev/ai/package/roblox/sumer9999dev/fastpacket/files","readme":"# 📦 FastPacket\r\nSimple & Fast luau packet library <br/>\r\nCreated by SUMER (@sumer_real) for MelonBytes Studio\r\n\r\n# ☁️ Installation\r\n**Roblox**: Download from [releases](https://github.com/SUMER9999dev/FastPacket/releases) <br/>\r\n**Wally**:  ``fastpacket = \"sumer9999dev/fastpacket@1.0.5\"``\r\n\r\n\r\n# 📖 Documentation\r\n\r\n## Packet Types\r\nPacket types is need to create packet <br/>\r\n\r\n```lua\r\n-- for integers that can be negative\r\nFastPacket.Types.Number8  -- 8 is bit size (8, 16, 32)\r\n```\r\n  \r\n```lua\r\n-- for integers that can't be negative\r\nFastPacket.Types.NumberU8  -- 8 is bit size (8, 16, 32)\r\n```\r\n\r\n```lua\r\n-- for float numbers\r\nFastPacket.Types.Float32  -- 32 is bit size (32, 64)\r\n```\r\n\r\n```lua\r\n-- for strings value\r\nFastPacket.Types.String  -- 32 is bit size (32, 64)\r\n```\r\n\r\n## Packet\r\nPacket allows to convert strict table structure to buffer and vice versa <br/>\r\n\r\n```lua\r\nlocal packet = FastPacket.Packet.new {\r\n  some_string = FastPacket.Types.String,\r\n  some_number = FastPacket.Types.Number16\r\n}\r\n\r\nlocal result_buffer = packet:create {\r\n  some_string = 'Hello!',\r\n  some_number = 1234\r\n}\r\n\r\nprint(packet:read(result_buffer, 0))  --> 12, {some_string = \"Hello!\", some_number = 1234}  : first number is packet size in bytes\r\n```\r\n\r\n## Stream\r\nStream is high level class that allows to bundle many packets into one buffer <br/>\r\n\r\n```lua\r\nlocal packet = ...\r\nlocal stream = FastPacket.Stream.new(8192, { packet })  -- 8192 is max stream size in bytes, second is table of supported packets\r\n\r\nstream:append(packet, {some_string = 'Hello!', some_number = 1234})  -- appends new packet inside stream\r\nstream:append(packet, {some_string = 'Another string!', some_number = 5678})\r\n\r\nlocal result = stream:flush()  -- will clean stream and return all collected packets inside one buffer\r\nprint(stream:read(result))\r\n\r\n--[[\r\n  will read stream buffer, print outputs:\r\n  {\r\n    [packet] = {\r\n      {some_string = 'Hello!', some_number = 1234},\r\n      {some_string = 'Another string!', some_number = 5678}\r\n    }\r\n  }\r\n]]\r\n```","readmeTruncated":false}