Files
zemion 592e0b9f59
Verify / verify (push) Canceled after 0s
Release Binary Tools 0.2.0
2026-09-02 09:05:50 +02:00

40 lines
2.3 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.
- Checked insert, replace and delete operations over the canonical byte buffer.
- Exact UTF-8 and hex search, including `??` byte wildcards, capped result sets,
and a cancellable hard-deadline worker path for larger buffers.
- Little- and big-endian integer, floating-point, timestamp and UTF-8
interpretations at any checked offset.
- Named range bookmarks plus audited PNG, RIFF/WAVE and ELF header templates.
- 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, edits and encoded outputs are capped at 1 MiB; search patterns at 4 KiB, matches at 10,000, bookmarks at 100 and template fields at 128. Larger searches run in a disposable local worker with cooperative cancellation and a five-second hard deadline. 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. Templates inspect only declared fields and do not claim full format validation. 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.2.0.zip` with a SHA-256 sidecar.
## Licence
GPL-3.0-or-later. See `LICENSE` and `THIRD_PARTY_NOTICES.md`.