The offline developer's data workbench.
A native desktop app that replaces the dozens of "paste your data here" websites you reach for every day — JSON formatters, regex testers, JWT decoders, hash calculators, codegen, and more — with a single, fast, fully offline tool.
Important
Zero network calls. Zero telemetry. Zero data ever leaves your machine. Every tool runs on-device against a pure-Rust core. Inputs live in RAM only and disappear when you close the tab.
You paste a JWT into a random website to "just decode it real quick." You drop a JSON blob into another to format it. A regex into a third. Each one is a black-box service running on someone else's server, logging whatever you give it. Most of the time the data is harmless. Sometimes it isn't.
ZDataForge collapses that whole habit into one native app. Everything runs locally in a Rust core. Nothing is uploaded, nothing is logged, nothing leaves the machine. It launches from a global hotkey into a Raycast-style command palette, every tool is one fuzzy-search away, and the inputs vanish when you close the window.
ZDataForge ships 45 tools organized into seven categories, plus a built-in Privacy & Data panel and About screen. Every tool runs on-device with zero network access.
JSON & structured data (9 tools)
| Tool | Description |
|---|---|
| JSON Formatter | Format, minify, and validate JSON |
| JSON Diff | Compare two JSON documents side by side |
| JSON → Rust Struct | Generate Rust structs with serde from JSON |
| JSON → C# Class | Generate C# classes from JSON |
| JSON → TypeScript | Generate TypeScript interfaces from JSON |
| JSON → Go Struct | Generate Go structs from JSON |
| YAML ↔ JSON | Convert between YAML and JSON |
| TOML ↔ JSON | Convert between TOML and JSON |
| CSV ↔ JSON | Convert between CSV and JSON |
Text & regex (9 tools)
| Tool | Description |
|---|---|
| Regex Tester | Live regex testing with match highlights and capture groups |
| Text Diff | Compare two text blocks line by line |
| Case Converter | snake_case, camelCase, PascalCase, kebab-case, and more |
| Line Tools | Sort, deduplicate, reverse, number, trim, filter lines |
| Text Counter | Words, characters, lines, bytes, reading time |
| Lorem Ipsum | Generate placeholder text |
| Slug Generator | Convert text into URL-friendly slugs |
| Cron Parser | Parse cron expressions and show next firing times |
| String Escape | Escape and unescape JSON, HTML, shell, and URL strings |
Encoding (3 tools)
| Tool | Description |
|---|---|
| JWT Decoder | Decode and inspect JWT tokens, verify signatures |
| Base64 | Encode and decode (standard and URL-safe) |
| UUID / ULID Generator | Generate and inspect UUID v4/v7 and ULID |
Crypto (5 tools)
| Tool | Description |
|---|---|
| Hash Generator | MD5, SHA-1, SHA-256, SHA-512, BLAKE3 |
| HMAC Generator | HMAC-SHA-1/256/384/512 signatures |
| Password Hash | Argon2id and bcrypt hashing and verification |
| AES Encrypt / Decrypt | AES-256-GCM (educational) |
| RSA Keypair Generator | Generate 2048/4096-bit RSA keypairs in PEM |
Binary & numbers (3 tools)
| Tool | Description |
|---|---|
| Hex Viewer | Canonical hex dump with offset, hex, and ASCII columns |
| Base Converter | Convert between binary, octal, decimal, hexadecimal |
| Color Converter | hex / RGB / HSL / OKLCh with WCAG contrast checker |
Time (2 tools)
| Tool | Description |
|---|---|
| Unix Timestamp | Convert between Unix epoch, ISO 8601, RFC 2822, local time |
| Duration Parser | Parse human-readable durations, convert to ISO 8601 |
Network & web (7 tools)
| Tool | Description |
|---|---|
| IP / CIDR Calculator | Parse IPs and CIDR, compute subnet ranges (v4 & v6) |
| URL Parser | Inspect scheme, host, path, query, fragment |
| HTTP Status Codes | Quick reference with descriptions and categories |
| MIME Type Lookup | Look up MIME types by extension or vice versa |
| QR Code Generator | Generate SVG QR codes offline |
| SQL Formatter | Format and beautify SQL queries |
| User-Agent Parser | Identify browser, OS, and device from UA strings |
Niche & specialist (7 tools)
| Tool | Description |
|---|---|
| Image Inspector | Detect format, dimensions, color mode; strip EXIF |
| SVG Optimizer | Minify SVG: strip comments, compact numbers, drop metadata |
| Mermaid Preview | Render Mermaid diagrams live |
| ASN.1 Decoder | Parse DER/PEM ASN.1 data into a tree |
| X.509 Inspector | Subject, issuer, SANs, validity, fingerprint |
| Protobuf Decoder | Schema-less proto3 wire format decoder |
| MessagePack | Bidirectional JSON ↔ MessagePack conversion |
Tip
Forgot a tool name? Just hit the global hotkey and start typing — the fuzzy search matches on title, category, and keywords.
This is the entire point of the product.
Note
- Zero network calls — no telemetry, no analytics, no update pings, no crash reporters.
- RAM by default — inputs and outputs live in volatile memory and disappear when you close the tab. History is opt-in.
- Local-only settings — the only thing persisted to disk is your settings file (theme, hotkey, density, accent) in the OS app-data directory. Wipe it from the Privacy & Data panel inside the app at any time.
- Auditable — the source is GPL v3. Read it, fork it, build it yourself.
Caution
If you ever see ZDataForge make a network call you didn't initiate, that's a bug. Open an issue immediately.
ZDataForge is keystroke-first. The palette is reachable in one keystroke; every tool is reachable in two.
| Shortcut | Action |
|---|---|
| Ctrl+Shift+Space / ⌘+Shift+Space | Show / hide ZDataForge (system-wide global hotkey) |
| Ctrl+K / ⌘+K | Open command palette |
| Ctrl+W / ⌘+W | Close current tool tab |
| Ctrl+, / ⌘+, | Open Settings |
| ↑ / ↓ | Navigate palette results |
| Enter | Select tool |
| Esc | Close palette / dismiss modal |
| ? | Show the in-app shortcuts overlay |
The global hotkey is configurable from Settings.
Prebuilt binaries are published for every release on the landing page:
| Platform | Format |
|---|---|
| Windows x64 | .msi, .exe (NSIS installer) |
| macOS Apple Silicon | .dmg |
| macOS Intel x64 | .dmg |
| Linux x64 | .deb, .rpm, .AppImage |
SHA-256 checksums are published alongside each release in SHA256SUMS.txt.
Warning
macOS builds are currently ad-hoc signed (APPLE_SIGNING_IDENTITY=-). On first launch you may need to right-click → Open, or remove the quarantine attribute manually with:
xattr -dr com.apple.quarantine /Applications/ZDataForge.appProper notarization is on the roadmap.
- Rust stable — install via rustup
- Node.js 24 (download)
- pnpm 9+ —
npm install -g pnpmor via corepack - Tauri v2 system dependencies for your platform
Linux system packages (Debian / Ubuntu)
sudo apt-get update
sudo apt-get install -y \
build-essential \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libssl-dev \
libxdo-dev \
libfuse2 \
libdbus-1-dev \
patchelf \
pkg-configFor other distros, see the Tauri prerequisites guide.
git clone https://github.com/TheHolyOneZ/ZDataForge.git
cd ZDataForge
# install all JS/TS dependencies (root + workspaces)
pnpm install
# launch the desktop app in dev mode (hot reload for both Rust and React)
pnpm tauri devNote
The first pnpm tauri dev will download and compile every Rust crate in the workspace. Expect 5–15 minutes the first time depending on your machine; subsequent runs are incremental and much faster thanks to the build cache.
# produces a signed-or-unsigned native bundle for your host platform
pnpm tauri buildOutput bundles land under apps/desktop/src-tauri/target/release/bundle/:
| Folder | What's inside |
|---|---|
bundle/msi/, bundle/nsis/ |
Windows installers |
bundle/dmg/ |
macOS disk image |
bundle/deb/, bundle/rpm/, bundle/appimage/ |
Linux packages |
Tip
To target a specific bundle format, pass --bundles:
pnpm tauri build --bundles dmg # macOS DMG only
pnpm tauri build --bundles nsis,msi # Windows installers
pnpm tauri build --bundles deb,appimage,rpm # Linux triocargo test --workspace # Rust core test suite (256 tests)
cargo clippy --workspace --all-targets -- -D warnings
pnpm --filter @zdataforge/desktop lint # ESLint
pnpm --filter @zdataforge/desktop test # Vitest (frontend)ZDataForge/
├── apps/
│ └── desktop/ # Tauri v2 app (React + TS frontend, Rust shell)
│ ├── src/ # React UI, tool registry, command palette
│ │ ├── tools/ # one folder per shipped tool
│ │ ├── app/ # shell, settings, command palette
│ │ ├── components/ # shared UI
│ │ └── lib/ # registry, store, platform helpers
│ └── src-tauri/ # Tauri Rust shell + IPC commands
├── crates/
│ ├── forge-core/ # tool engines (json, text, crypto, net, …)
│ ├── forge-codegen/ # JSON → struct/class codegen
│ └── forge-ipc/ # Tauri command boundary
├── packages/
│ └── ui-tokens/ # shared design tokens (colors, spacing, radii)
├── .github/workflows/ # CI + multi-platform release builds
├── Cargo.toml # Rust workspace
└── pnpm-workspace.yaml # pnpm workspace
The Rust core is split into focused modules — binary, color, convert, crypto, files, json, net, numbers, text, time_tools — each with its own test suite and benchmarks.
| Layer | Choice |
|---|---|
| Shell | Tauri v2 |
| Backend / engines | Rust (stable, edition 2021) |
| UI runtime | React 18 + TypeScript 5.6 |
| Bundler | Vite 6 |
| Styling | Tailwind CSS v4 + custom design tokens |
| Editor | CodeMirror 6 |
| State | Zustand 5 |
| Diagrams | Mermaid 11 |
| Icons | lucide-react |
| Package manager | pnpm 9 (workspaces) |
Notable Rust crates: serde_json, regex, jsonwebtoken, chrono / chrono-tz, sha2, blake3, argon2, ipnetwork, qrcode.
Issues and pull requests are welcome at github.com/TheHolyOneZ/ZDataForge.
Before opening a PR:
- Run
cargo fmt --all,cargo clippy --workspace --all-targets -- -D warnings, andcargo test --workspace. - Run
pnpm --filter @zdataforge/desktop lintand the Vitest suite. - For a new tool, add an entry to
apps/desktop/src/lib/registry.tsand follow the structure of an existing folder underapps/desktop/src/tools/.
Important
Keep the offline guarantee. Any code that performs outbound network access — telemetry, update checks, remote crash reporting, anything — will not be merged. This is a non-negotiable design constraint.
Released under the GNU General Public License v3.0 or later (GPL-3.0-or-later). You may use, study, modify, and redistribute the source under the same terms. See LICENSE when present in a release tarball; the in-app About panel and source headers are the canonical reference until a top-level LICENSE file is added to the repository.
Built by TheHolyOneZ. More projects at zsync.eu.
ZDataForge stands on the shoulders of the Tauri, Rust, and React ecosystems, as well as every crate and package listed above. Thanks to the maintainers of all of them.
Made with care for developers who'd rather not paste their secrets into random websites.
