1.6 KiB
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.
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.