Show raw api
{
"functions": [
{
"name": "create",
"desc": "Create a stream around a new buffer with the given size in bytes.\n\nThis is equivalent to `stream.frombuffer(buffer.create(size))`.",
"params": [
{
"name": "size",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "Stream\n"
}
],
"function_type": "static",
"source": {
"line": 51,
"path": "modules/stream/init.luau"
}
},
{
"name": "frombuffer",
"desc": "Create a stream around an existing buffer.",
"params": [
{
"name": "buf",
"desc": "",
"lua_type": "buffer"
}
],
"returns": [
{
"desc": "",
"lua_type": "Stream\n"
}
],
"function_type": "static",
"source": {
"line": 60,
"path": "modules/stream/init.luau"
}
},
{
"name": "fromstring",
"desc": "Create a stream from an existing string.\n\nThis is equivalent to `stream.frombuffer(buffer.fromstring(size))`.",
"params": [
{
"name": "str",
"desc": "",
"lua_type": "string"
}
],
"returns": [
{
"desc": "",
"lua_type": "Stream\n"
}
],
"function_type": "static",
"source": {
"line": 75,
"path": "modules/stream/init.luau"
}
},
{
"name": "readu8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 90,
"path": "modules/stream/init.luau"
}
},
{
"name": "readi8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 99,
"path": "modules/stream/init.luau"
}
},
{
"name": "readu16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 108,
"path": "modules/stream/init.luau"
}
},
{
"name": "readi16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 117,
"path": "modules/stream/init.luau"
}
},
{
"name": "readu32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 126,
"path": "modules/stream/init.luau"
}
},
{
"name": "readi32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 135,
"path": "modules/stream/init.luau"
}
},
{
"name": "readf32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 144,
"path": "modules/stream/init.luau"
}
},
{
"name": "readf64",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 153,
"path": "modules/stream/init.luau"
}
},
{
"name": "readstring",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "count",
"desc": "",
"lua_type": "number"
}
],
"returns": [
{
"desc": "",
"lua_type": "string\n"
}
],
"function_type": "static",
"source": {
"line": 162,
"path": "modules/stream/init.luau"
}
},
{
"name": "readlstring",
"desc": "Reads a string previously written using `stream.writelstring`. This function\nassumes that the length of the string is written at the beginning as a u32 int.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "string\n"
}
],
"function_type": "static",
"source": {
"line": 174,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvector",
"desc": "Equivalent to `stream.readvectorf32`.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 184,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectorf32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 197,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectoru32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 210,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectori32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 223,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectoru16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 236,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectori16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 249,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectoru8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 262,
"path": "modules/stream/init.luau"
}
},
{
"name": "readvectori8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "vector\n"
}
],
"function_type": "static",
"source": {
"line": 275,
"path": "modules/stream/init.luau"
}
},
{
"name": "writeu8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 291,
"path": "modules/stream/init.luau"
}
},
{
"name": "writei8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 299,
"path": "modules/stream/init.luau"
}
},
{
"name": "writeu16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 307,
"path": "modules/stream/init.luau"
}
},
{
"name": "writei16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 315,
"path": "modules/stream/init.luau"
}
},
{
"name": "writeu32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 323,
"path": "modules/stream/init.luau"
}
},
{
"name": "writei32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 331,
"path": "modules/stream/init.luau"
}
},
{
"name": "writef32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 339,
"path": "modules/stream/init.luau"
}
},
{
"name": "writef64",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "n",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 347,
"path": "modules/stream/init.luau"
}
},
{
"name": "writestring",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "str",
"desc": "",
"lua_type": "string"
},
{
"name": "count",
"desc": "",
"lua_type": "number?"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 355,
"path": "modules/stream/init.luau"
}
},
{
"name": "writelstring",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "str",
"desc": "",
"lua_type": "string"
},
{
"name": "count",
"desc": "",
"lua_type": "number?"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 363,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevector",
"desc": "Equivalent to `stream.writevectorf32`.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 373,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectorf32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 385,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectoru32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 397,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectori32",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 409,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectoru16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 421,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectori16",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 433,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectoru8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 445,
"path": "modules/stream/init.luau"
}
},
{
"name": "writevectori8",
"desc": "",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "v",
"desc": "",
"lua_type": "vector"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 457,
"path": "modules/stream/init.luau"
}
},
{
"name": "len",
"desc": "Returns the length of the backing buffer.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 473,
"path": "modules/stream/init.luau"
}
},
{
"name": "pos",
"desc": "Returns the position of the stream's cursor.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "number\n"
}
],
"function_type": "static",
"source": {
"line": 482,
"path": "modules/stream/init.luau"
}
},
{
"name": "copy",
"desc": "Copy `count` bytes from `source` into `target`. The provided streams' cursors are\nincremented by `count`.",
"params": [
{
"name": "target",
"desc": "",
"lua_type": "Stream"
},
{
"name": "source",
"desc": "",
"lua_type": "Stream"
},
{
"name": "count",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 492,
"path": "modules/stream/init.luau"
}
},
{
"name": "copytobuffer",
"desc": "Copy `count` bytes from the `source` stream into the `target` buffer. The `source` stream\ncursor is incremented by `count`.",
"params": [
{
"name": "target",
"desc": "",
"lua_type": "buffer"
},
{
"name": "targetOffset",
"desc": "",
"lua_type": "number"
},
{
"name": "source",
"desc": "",
"lua_type": "Stream"
},
{
"name": "count",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 504,
"path": "modules/stream/init.luau"
}
},
{
"name": "copyfrombuffer",
"desc": "Copy `count` bytes from the `source` buffer (optionally offset by `sourceOffset`) into the\n`target` stream. The `target` stream cursor is incremented by `count`.",
"params": [
{
"name": "target",
"desc": "",
"lua_type": "Stream"
},
{
"name": "source",
"desc": "",
"lua_type": "buffer"
},
{
"name": "sourceOffset",
"desc": "",
"lua_type": "number?"
},
{
"name": "count",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 515,
"path": "modules/stream/init.luau"
}
},
{
"name": "seek",
"desc": "Moves the cursor relative to the beginning of the stream.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "offset",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 525,
"path": "modules/stream/init.luau"
}
},
{
"name": "seekend",
"desc": "Moves the cursor backward relative to the end of the stream.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "offset",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 537,
"path": "modules/stream/init.luau"
}
},
{
"name": "seekforward",
"desc": "Moves the cursor forward relative to the current cursor position.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "offset",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 549,
"path": "modules/stream/init.luau"
}
},
{
"name": "seekbackward",
"desc": "Moves the cursor backward relative to the current cursor position.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
},
{
"name": "offset",
"desc": "",
"lua_type": "number"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 561,
"path": "modules/stream/init.luau"
}
},
{
"name": "buffer",
"desc": "Gets the backing buffer for the stream.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "buffer\n"
}
],
"function_type": "static",
"source": {
"line": 573,
"path": "modules/stream/init.luau"
}
},
{
"name": "tostring",
"desc": "Returns the backing buffer as a string.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "string\n"
}
],
"function_type": "static",
"source": {
"line": 582,
"path": "modules/stream/init.luau"
}
},
{
"name": "atend",
"desc": "Returns `true` if the cursor is at the end of the stream.",
"params": [
{
"name": "s",
"desc": "",
"lua_type": "Stream"
}
],
"returns": [
{
"desc": "",
"lua_type": "boolean\n"
}
],
"function_type": "static",
"source": {
"line": 591,
"path": "modules/stream/init.luau"
}
}
],
"properties": [],
"types": [],
"name": "stream",
"desc": "The `stream` library allows a stream-like interface abstraction on top of buffers. This is useful\nfor reading or writing buffers without having to keep track of the current offset position.\n\nThis library is specifically tailored around fixed-length buffers.\n\n```lua\n-- Create an empty stream and write some data:\nlocal s = stream.create(4)\nstream.writeu8(s, 10)\nstream.writeu8(s, 25)\nstream.writeu8(s, 2)\nstream.writeu8(s, 43)\n\n-- Grab the buffer if needed:\nlocal buf = stream.buffer(s)\n\n-- Create a stream from an existing buffer:\nlocal s = stream.from(buf)\nprint(stream.readu8()) -- 10\nprint(stream.readu8()) -- 25\nprint(stream.readu8()) -- 2\nprint(stream.readu8()) -- 43\n\n-- Move the cursor:\nstream.seek(s, 1)\nprint(stream.readu8()) -- 25\n```",
"source": {
"line": 35,
"path": "modules/stream/init.luau"
}
}