unidecompiler-gui-sdk
Stable, read-only API for trusted unidecompiler-gui Python plugins. The SDK
does not depend on Qt, core internals, frontends, or the simulator implementation.
Install it directly when developing a plugin:
python -m pip install unidecompiler-gui-sdk
End users do not need to install it separately: unidecompiler-gui depends on
the matching SDK API.
Minimal Plugin
Place plugin.toml and the declared entry module in one directory:
[plugin]
id = "example.workspace-inspector"
name = "Workspace Inspector"
version = "1.0.0"
api = "1"
entry = "workspace_inspector:register"
[python]
requires = []
from unidecompiler_gui_sdk import Command, Panel, PanelState
def register(context):
context.panels.register(Panel("summary", "Summary"))
def refresh(plugin_context):
document = plugin_context.active_document
text = "No active document" if document is None else document.display_name
plugin_context.set_panel_state("summary", PanelState.text_view(text))
context.commands.register(Command("refresh", "Refresh summary", refresh))
context.subscribe("document_selected", lambda _document: refresh(context))
The plugin entry function receives a plugin-scoped context. Plugins are trusted
in-process code, are not sandboxed, and must not import Qt or private
decompiler/simulator modules. See the repository's
docs/GUI_PLUGIN_DEVELOPMENT.md for the complete contract.
The GUI calls the manifest entry function with a plugin-scoped PluginContext.
Context snapshots are frozen data and navigation/simulation are host requests.
Register extensions through context.commands.register(Command(...)) and
context.panels.register(Panel(...)); panels use PanelState data rather than
Qt widgets. The SDK exposes no generic IR, decoded artifacts, frontends, Qt
objects, or simulator execution internals.
For simulation, request frontend-owned targets with
request_simulation_targets(document_id). The asynchronous target job returns
SimulationTargetSnapshot values containing a display label, parameter names,
and an opaque query. Pass that query unchanged to submit_simulation. Finished
jobs contain SDK-owned SimulationResultSnapshot and
SimulationEventSnapshot data, never simulator implementation objects.
context.settings stores JSON-compatible values under the current plugin ID;
one plugin cannot address another plugin's settings namespace.
Metadata
Release files for unidecompiler-gui-sdk 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unidecompiler_gui_sdk-0.2.1.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unidecompiler_gui_sdk-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / unidecompiler_gui_sdk-0.2.1.tar.gz
| Download URL | unidecompiler_gui_sdk-0.2.1.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6627338fb4251720b0b6d5809e0a99555f5cb98f3e676b45f76882021c649f68
|
|
BLAKE2b-256 checksum How to use checksums |
220b4f5f148a5db5f1c421bcac643d102495422e99c7dfb3f355f4244fe011a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|
Release files / unidecompiler_gui_sdk-0.2.1-py3-none-any.whl
| Download URL | unidecompiler_gui_sdk-0.2.1-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
10532984fbf4fd5e1a57662e51b6e8a7b18b4ef9621fd17243541b7ece43a04e
|
|
BLAKE2b-256 checksum How to use checksums |
e7dd958b6ba2fac4a596b50e96c8ee0e2dab4124c71a46eb172e97164fbc82db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.12
|