docs / stdlib / codec

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

aot

  1. Components
  2. Scope
  3. Scoped

codec

  1. Base32
  2. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. Fiber
  5. FiberLocal
  6. Lock
  7. Mutex
  8. RwLock
  9. Semaphore
  10. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. NotProvidedException
  4. RecoverableException
  5. ScopedBuildFailedException
  6. ScopeNotActiveException
  7. Throwable
  8. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. DefaultHasher
  2. Hash
  3. SipHash
  4. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. BufferPool
  2. ByteBuffer
  3. IpAddress
  4. Server
  5. ServerBuilder
  6. SocketAddress
  7. TcpListener
  8. TcpStream
  9. UdpSocket

io / net / dns

  1. Dns

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. CompressStream
  3. DecompressionLimitException
  4. Decompressor
  5. Encoder
  6. Schema
  7. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream
  4. KernelTimer

xpu / mesh

  1. MeshSimplifier

Base64

cajeta.codec.Base64 — Base64 (RFC 4648) byte ⇄ text codec. Supports both alphabets in §4 (standard, + /) and §5 (URL- and filename-safe, - _), with explicit control over padding. Decoding accepts either alphabet transparently, so a caller need not know which variant produced the text (an HTTP Authorization: Basic … header vs. a JWT segment). A character outside the alphabet or a stripped length of 1 mod 4 raises Base64Exception with the offending byte offset; trailing = padding is consumed and ignored, so unpadded URL-safe input round-trips without the caller re-adding =.

int8[] data = heap int8[3];
data[0] = (int8) 77;
data[1] = (int8) 97;
data[2] = (int8) 110;
String b #= Base64.encode(data, (int64) data.count());        // "TWFu"
String u #= Base64.encodeUrlSafe(data, (int64) data.count()); // "TWFu" (no '=')
int8[] raw #= Base64.decode(b);       // either alphabet, padded or not

Methods

Signature
static #String encode(int8[] data, int64 len) ⚑Encode data[0..len) to standard Base64 (§4) with = padding
static #String encodeUrlSafe(int8[] data, int64 len) ⚑Encode to URL-/filename-safe Base64 (§5, -/_) without padding — the JWT / query-parameter form
static #String encode(int8[] data, int64 len, boolean urlSafe, boolean pad)General encode: pick the alphabet and padding explicitly
static #int8[] decode(String s) ⚑Decode a Base64 String (either alphabet, padded or not) to raw bytes; throws Base64Exception on garbage
static #int8[] decodeBytes(int8[] data, int64 len)Decode data[0..len) (encoded text held as bytes) to raw bytes

⚑ = @EntryPoint

See also

Source: docs/stdlib/codec/Base64.md · 1 min read · 225 words