{
  "slug": "base32-codec",
  "name": "gizza-ai/base32-codec",
  "version": "0.1.0",
  "title": "Base32 Encoder & Decoder (RFC 4648) — gizza.ai",
  "description": "Free Base32 encoder and decoder in your browser — RFC 4648, base32hex, Crockford and z-base-32 variants, hex byte I/O, optional padding. Private, no sign-up.",
  "tags": [
    "base32",
    "base32 encode",
    "base32 decode",
    "rfc 4648",
    "base32hex",
    "crockford base32",
    "z-base-32",
    "encoder",
    "decoder",
    "hex"
  ],
  "category": "encoding",
  "urls": {
    "page": "https://gizza.ai/tools/base32-codec/",
    "markdown": "https://gizza.ai/tools/base32-codec/index.md",
    "descriptor": "https://gizza.ai/tools/base32-codec/tool.json",
    "deep_link_example": "https://gizza.ai/tools/base32-codec/?input=foobar&mode=encode&variant=standard&format=text&lowercase=true&padding=true"
  },
  "cli": "gizza tool base32-codec \"foobar\"",
  "tool": {
    "description": "Encode text or bytes to Base32, or decode a Base32 string back to the original data. Use mode='encode' (default) or mode='decode'. variant selects the alphabet: 'standard' (default) is RFC 4648 (A-Z 2-7, e.g. 'foobar' -> 'MZXW6YTBOI======'); 'hex' is RFC 4648 base32hex; 'crockford' (no I L O U, never padded); 'zbase32' (human-oriented, never padded). format='text' (default) treats the data as UTF-8; format='hex' reads/writes a hex byte string for binary data that isn't valid UTF-8. lowercase emits a lowercase standard/hex alphabet; padding (default true) adds '=' padding for standard/hex. Decoding is case-insensitive and accepts padded or unpadded input.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "format": {
          "default": "text",
          "description": "How to read the bytes when encoding, or render them when decoding. 'text' (default) is UTF-8; 'hex' is a hex byte string (e.g. '48 65 6c' or '0x48656c') — use 'hex' for binary data that isn't valid UTF-8.",
          "enum": [
            "text",
            "hex"
          ],
          "type": "string"
        },
        "input": {
          "description": "The data to encode (text or hex bytes), or the Base32 string to decode.",
          "type": "string"
        },
        "lowercase": {
          "default": false,
          "description": "When true, emit a lowercase alphabet while encoding standard/hex. Ignored for crockford/zbase32 and on decode (decoding is case-insensitive). Default false.",
          "type": "boolean"
        },
        "mode": {
          "default": "encode",
          "description": "Direction: 'encode' (default) turns data into Base32, 'decode' reverses it.",
          "enum": [
            "encode",
            "decode"
          ],
          "type": "string"
        },
        "padding": {
          "default": true,
          "description": "When true (default), append '=' padding while encoding standard/hex per RFC 4648. Crockford and z-base-32 are never padded. Decoding accepts padded or unpadded input either way.",
          "type": "boolean"
        },
        "variant": {
          "default": "standard",
          "description": "Base32 alphabet. 'standard' (default) is RFC 4648 (A-Z 2-7); 'hex' is RFC 4648 base32hex (0-9 A-V); 'crockford' excludes the ambiguous I L O U and is never padded; 'zbase32' is the human-oriented z-base-32 (never padded).",
          "enum": [
            "standard",
            "hex",
            "crockford",
            "zbase32"
          ],
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}