34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# 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`.
|