On this page:
12.1 Functions
base64-encode
base64-decode
base64-encode-stream
base64-decode-stream
12.2 Base64 Unit
base64@
12.3 Base64 Signature
base64^

12 Base 64: Encoding and Decoding

The net/base64 library provides utilities for Base 64 (MIME-standard) encoding and decoding.

12.1 Functions

procedure

(base64-encode bstr [newline-bstr])  bytes?

  bstr : bytes?
  newline-bstr : bytes? = #"\r\n"
Consumes a byte string and returns its Base 64 encoding as a new byte string. The returned string is broken into 72-byte lines separated by newline-bstr, which defaults to a CRLF combination, and the result always ends with a newline-bstr unless the input is empty.

procedure

(base64-decode bstr)  bytes?

  bstr : bytes?
Consumes a byte string and returns its Base 64 decoding as a new byte string.

procedure

(base64-encode-stream in out [newline-bstr])  void?

  in : input-port?
  out : output-port?
  newline-bstr : bytes? = #"\n"
Reads bytes from in and writes the encoded result to out, breaking the output into 72-character lines separated by newline-bstr, and ending with newline-bstr unless the input stream is empty. Note that the default newline-bstr is just #"\n", not #"\r\n". The procedure returns when it encounters an end-of-file from in.

procedure

(base64-decode-stream in out)  void?

  in : input-port?
  out : output-port?
Reads a Base 64 encoding from in and writes the decoded result to out. The procedure returns when it encounters an end-of-file or Base 64 terminator = from in.

12.2 Base64 Unit

base64@ and base64^ are deprecated. They exist for backward-compatibility and will likely be removed in the future. New code should use the net/base64 module.

 (require net/base64-unit)

value

base64@ : unit?

Imports nothing, exports base64^.

12.3 Base64 Signature

 (require net/base64-sig)

signature

base64^ : signature

Includes everything exported by the net/base64 module.