# Binary Tools Convert, inspect and decode byte-oriented formats locally in the browser. Binary Tools is a standalone add·ideas Toolbox application; files and input never leave the browser. ## Features - Synchronized UTF-8, hexadecimal, Base64, RFC 4648 Base32 and Bitcoin-alphabet Base58 conversions. - A paged byte/offset/ASCII inspector with clickable highlighted source ranges. - CBOR and MessagePack JSON encode/decode. - Strict ASN.1 DER TLV trees, including canonical identifiers, lengths and core primitive encodings. - Protocol Buffers wire inspection with optional JSON field schemas for common scalar and nested message types. - Offline-capable PWA, light/dark/system themes and keyboard-accessible controls. ## Safety and limits All input is inert data. The application makes no external requests and never evaluates decoded content. Inputs and encoded outputs are capped at 1 MiB; structured parsing is capped at depth 64 and 10,000 nodes. Base58 is capped at 4 KiB because arbitrary-base conversion is quadratic. DER rejects indefinite/non-minimal lengths and identifiers plus malformed core primitive encodings. Protobuf groups are deliberately unsupported. Schema assistance validates field records and wire compatibility, but is intentionally limited and is not a generated protobuf runtime. ## Development Requires Node.js 22+ and npm 11. ```sh npm ci npm run check npm run test:browser npm run package:release -- --force ``` The deterministic release is written to `release/binary-tools-0.1.0.zip` with a SHA-256 sidecar. ## Licence GPL-3.0-or-later. See `LICENSE` and `THIRD_PARTY_NOTICES.md`.