Skip to main content

StructLayoutToolkitGui

StructLayoutToolkitGui is a desktop application for inspecting and editing binary files using structure layouts defined by the StructLayoutToolkit ecosystem. It combines a hierarchical binary viewer with editors for structure and enumeration definitions.

Features

  • Decode binary files with a selected StructDef.
  • Display field offsets, raw bytes, names, types, values, and sizes.
  • Inspect nested structures in a hierarchical tree view.
  • Edit decoded field values and encode them back to binary data.
  • View and edit raw hexadecimal data when no structure is selected.
  • Create and edit StructDef and EnumDef dictionaries.
  • Re-decode loaded data after changing type definitions.
  • Open, save, and save-as both binary and StructLayout files.
  • Configure the number of bytes shown per row in raw mode.

Requirements

  • Python 3.14 or later
  • Tkinter support in the Python installation

Tkinter is included with standard Python installations on Windows and macOS. Some Linux distributions provide it as a separate system package.

Installation

Install the package from PyPI:

python -m pip install sltgui

Running the Application

Start the binary editor with:

python -m sltgui.binary_editor_window

Basic Workflow

  1. Open a StructLayout JSON file from Type Definition > Open StructLayout.
  2. Open a binary file from File > Open Binary.
  3. Double-click a value cell to edit a decoded field.
  4. Use Re-decode after updating Struct or Enum definitions.
  5. Save changes with Save Binary or choose a new destination with Save Binary As.

The files may also be opened in the opposite order. A binary opened without a layout is shown in raw mode and is decoded when a valid StructLayout is loaded.

Static offsets and sizes use byte,bit notation. For example, 4,0 represents four bytes and 0,3 represents three bits.

Using the Window from Python

The GUI classes are also available as a Python API:

import tkinter as tk

from sltgui import BinaryEditorWindow

root = tk.Tk()
root.withdraw()
window = BinaryEditorWindow(root)
window.protocol("WM_DELETE_WINDOW", root.destroy)
root.mainloop()

The package exports BinaryEditorWindow, StructDefDictEditor, and EnumDefDictEditor.

Related Projects

StructLayoutToolkitGui uses the following StructLayoutToolkit packages:

  • sltcore for core structure and size types
  • sltcodec for StructLayout serialization and binary encoding/decoding
  • sltcalc for expression evaluation

Links

License

StructLayoutToolkitGui is distributed under the MIT License.

Metadata

Release files for sltgui 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sltgui 0.2.0
File Size Uploaded
sltgui-0.2.0.tar.gz 36.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sltgui 0.2.0
File Interpreter ABI Platform
sltgui-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 59.3 kB

Release files / sltgui-0.2.0.tar.gz

Download URL sltgui-0.2.0.tar.gz
Size 36.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e0351e0229fe4f3af25a9baae3da5c539829f9508b3d9e93abbbce8552d2431e
BLAKE2b-256 checksum
How to use checksums
15573a097aa4260e149c2469e35457a64c4c0f2472efb731292600b3d28caac2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / sltgui-0.2.0-py3-none-any.whl

Download URL sltgui-0.2.0-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d65863bd71f9f42257e2955b368372e1fcae049f6066bddbb80de0978b3f8bfb
BLAKE2b-256 checksum
How to use checksums
0cf6186c9be513947842bde89696fbec3d580942d7e945c34271ccae38b57808
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

2.0.0

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page