base16384 web API

This page computes its answer in the browser. Fetched without running
scripts (for example with a plain HTTP client), you get this guide.
In a browser, or a headless browser that runs scripts, the page body is
replaced by a JSON result. When it is done, the html element carries
data-status="ok", "error" or "guide".

Requests (query string, UTF-8, percent-encoded):

  ?op=encode&text=12345678       encode text
  ?op=encode&hex=3132333435      encode bytes given as hex
  ?op=encode&base64=MTIzNDU=     encode bytes given as base64

  ?op=decode&data=婌焳廔萷尀㴁   decode
      options: lenient=1
      returns bytes, text (null if not UTF-8), hex, base64, warnings

  ?op=length&bytes=1000          characters needed for a number of bytes
  ?op=describe&c=婌㴁            value or end-marker length per character
  ?op=version                    versions of this tool and its encoder

Every result has "ok", "op" and "version"; failures add
"error": { "code", "message", "position"? }.

Without a browser, use the encoder directly: base16384-js, a single
JavaScript module with a command-line tool.

Source: https://github.com/DecodeEncode/base16384-web (AGPL-3.0)