Skip to main content

Convert binary files to signed JSON and back, with zstd compression.

Project description

tzBJC - TaggedZ's Binary to JSON Converter

tzBJC is a utility for encoding and decoding binary files to signed JSON format with Zstandard compression. It provides both a command-line interface (CLI) and a graphical user interface (GUI) built with PySide6.


✨ Features

  • 🔐 Encodes binary files into signed JSON format
  • 🔌 Library for easy integration into other projects
  • 🧩 Uses Zstandard compression with Base64 URL-safe encoding
  • 📦 CLI and GUI support
  • ✅ Stream-based processing for large files
  • 📋 Clipboard-friendly JSON output (via GUI)
  • 🧪 Thorough test coverage with Pytest and Pytest-Qt

The Process

[Original Binary File]
        |
        |  (1. Read binary content)
        v
[SHA-256 Digest (hex string)]
        |
        |  (2. Compute SHA-256 of compressed data)
        v
[Binary Content]
        |
        |  (3. Compress using Zstandard)
        v
[Zstandard Compressed Binary Content]
        |
        |  (4. Encode with base64-url-safe)
        v
      [JSON File | stdout | StringIO | Clipboard-friendly JSON format (GUI)]
        {
          "filename": "example.bin",
          "data": "<zstd compressed base64 string>",
          "sha256": "<hash of original data>"
        }

--- Later ---

      [JSON File]
        |
        |  (5. Extract compressed base64 + hash)
        v
[Base64-urlsafe String]
        |
        |  (6. Decode base64-urlsafe)
        v
[Compressed Data]
        |
        |  (7. Decompress with Zstandard)
        v
       [Valid?]
        |
        |  (7. Verify checksum)
        v
[Original Binary Data]
        |
        |  (8. Write to output path)
        v
[Restored Binary File]

📦 Installation

pip install tzBJC

Or from source:

git clone https://github.com/taggedzi/tzBJC.git
cd tzBJC
pip install .

🖥️ Command Line Usage

See CLI help:

tzBJC-cli --help

Encode example:

tzBJC-cli encode -i input.bin -o output.json

Decode example:

tzBJC-cli decode -i output.json -o restored.bin

🪟 GUI Usage

tzBJC-gui

Drag-and-drop or select binary or JSON files to convert between formats. The GUI supports:

  • File output
  • Clipboard-friendly output
  • Overwrite protection (with force option)

🛠 Developer Instructions

Set up a local development environment:

git clone https://github.com/taggedzi/tzBJC.git
cd tzBJC
python -m venv .venv
source .venv/bin/activate  # on Windows: .venv\Scripts\activate
pip install -e .[dev]

Run tests with coverage:

pytest --cov=src

Build the package:

python -m build

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


🌐 Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tzbjc-0.2.16.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tzbjc-0.2.16-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file tzbjc-0.2.16.tar.gz.

File metadata

  • Download URL: tzbjc-0.2.16.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for tzbjc-0.2.16.tar.gz
Algorithm Hash digest
SHA256 f7b7c68541e7f2dd28185e3da419452941b53b2348c7fc0a2dc7f96cf14e9d28
MD5 57e8c6e27d648969d8ccb9a4cbe4fc0d
BLAKE2b-256 a66cfa6146f5ce02dfca35429a2fad2f979122aa2b74e8ab97d57b56d74d7327

See more details on using hashes here.

File details

Details for the file tzbjc-0.2.16-py3-none-any.whl.

File metadata

  • Download URL: tzbjc-0.2.16-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for tzbjc-0.2.16-py3-none-any.whl
Algorithm Hash digest
SHA256 67619f3c00d3f69d3e4004eb4b0df87fbf22e9f1d00e926b630b77531d33a6f9
MD5 cf84367cdadd1c2dfd9918f737b1d390
BLAKE2b-256 ea0ba9b33d6ad77fb01597d7013f7fe3455c2639307e62d074356bd908d2b315

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page