Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

bytes

A sequence of bytes.

This is conceptually similar to an array of integers between 0 and 255, but represented much more efficiently. You can iterate over it using a for loop.

You can convert

  • a string or an array of integers to bytes with the bytes constructor
  • bytes to a string with the str constructor, with UTF-8 encoding
  • bytes to an array of integers with the array constructor

When reading data from a file, you can decide whether to load it as a string or as raw bytes.

#bytes((123, 160, 22, 0)) \
#bytes("Hello 😃")

#let data = read(
  "rhino.png",
  encoding: none,
)

// Magic bytes.
#array(data.slice(0, 4)) \
#str(data.slice(1, 4))
Preview

Constructor
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

Converts a value to bytes.

  • Strings are encoded in UTF-8.
  • Arrays of integers between 0 and 255 are converted directly. The dedicated byte representation is much more efficient than the array representation and thus typically used for large byte buffers (e.g. image data).
#bytes("Hello 😃") \
#bytes((123, 160, 22, 0))
Preview

value
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

The value that should be converted to bytes.

Definition
Definition
These functions and types can have related definitions. To access a definition, specify the name of the function or type, followed by the definition name separated by a period.

len

The length in bytes.

self.len(
)->

at

Returns the byte at the specified index. Returns the default value if the index is out of bounds or fails with an error if no default value was specified.

self.at()->
any

index
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

The index at which to retrieve the byte.

default
any

A default value to return if the index is out of bounds.

slice

Extracts a subslice of the bytes. Fails with an error if the start or end index is out of bounds.

self.slice()->

start
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

The start index (inclusive).

end
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

The end index (exclusive). If omitted, the whole slice until the end is extracted.

Default value:

none

count

The number of items to extract. This is equivalent to passing start + count as the end position. Mutually exclusive with end.

Open official docs

Search