Skip to main content

Blob Library (Blob)

Linked to the blob type — the raw-bytes counterpart to str, useful anywhere binary data crosses a boundary (blobify, Http, fs, images).

Byte Access

Blob.at(bytes: blob, index: int) -> int

The byte value at an index.

blob-at.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes[1]);
}
Output

Blob.len(bytes: blob) -> int

blob-len.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes.len());
}
Output

Blob.size(bytes: blob) -> bytes

Same as len, but as a bytes unit value instead of a plain int.

blob-size.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes.size());
}
Output

Encoding & Decoding

Blob.utf8(bytes: blob) -> str

The default conversion for a plain as str cast too.

blob-utf8.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes.utf8(), bytes as str);
}
Output

Blob.from_utf8(val: str) -> blob

blob-from-utf8.stof
#[main]
fn main() {
  pln(Blob.from_utf8("hello") == ("hello" as blob));
}
Output

Blob.base64(bytes: blob) -> str

blob-base64.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes.base64());
}
Output

Blob.from_base64(val: str) -> blob

blob-from-base64.stof
#[main]
fn main() {
  const bytes: blob = Blob.from_base64("aGVsbG8=");
  pln(bytes as str);
}
Output

Blob.url_base64(bytes: blob) -> str

URL-safe Base64 — swaps the characters that aren't URL-safe in standard Base64.

blob-url-base64.stof
#[main]
fn main() {
  const bytes: blob = "hello";
  pln(bytes.url_base64());
}
Output

Blob.from_url_base64(val: str) -> blob

blob-from-url-base64.stof
#[main]
fn main() {
  const bytes: blob = Blob.from_url_base64("aGVsbG8=");
  pln(bytes as str);
}
Output