Skip to main content

A lightweight and modular terminal UI engine. Designed to make building interactive terminal interfaces simple and structured.

Project description

🧱 TUIX Core 0.3


🧩 Overview

TUIX is a modular terminal UI engine inspired by web technologies.
It introduces a DOM-like component system, a layout engine, and a buffer-based rendering pipeline for building structured and styled terminal interfaces.

v0.3 ships a compiled C + Cython core for low-latency rendering, four built-in widget builders (progressbar, choice, input, canvas), and a Python API that now includes buffer snapshots, hierarchy controls, and scene memory tooling.

🆕 What's New In 0.3

  • Buffer snapshots for safe reads: buffers.get_buffer_snapshot(...), buffers.get_buffer_snapshot_by_uid(...), objects.get_object_snapshot_by_uid(...).
  • Buffer hierarchy and ordering controls: buffers.set_buffer_parent(...), buffers.set_buffer_z_index(...), buffers.get_buffer_z_index(...).
  • Scene instrumentation and memory APIs: scenes.get_scene_stats(...), scenes.compact_scene_pixels(...), scenes.compact_cold_scenes(...).
  • Input handling now runs automatically inside builders during the main loop.
  • New showcase demos: examples/showcase/buffer_hierarchy_demo.py and examples/showcase/scene_stats_demo.py.

Core vs Framework: TUIX provides a low-level engine core - not a high-level application framework. The public API intentionally exposes low-level primitives and is not designed to be "simple" by itself; higher-level, user-friendly frameworks will be built on top of this core once it has matured and stabilised.


🚀 Installation

pip install tuix-core

Requires Python ≥ 3.10. Pre-built wheels are provided for Windows/Linux/macOS (AMD64, x86, ARM).
Building from source also requires Cython ≥ 0.29 and a C compiler.


⚡ Quick Start

from tuix.core import engine, builders, scenes, registry, objects, buffers, input

engine.init()
builders.register_standard()

scenes.init_scene(b"Main")
registry.registry.current_scene_name = b"Main"
input.listen()

# create a progressbar and animate it
uid = objects.create_object(builders.PROGRESSBAR, b"Main", 0.7, 0.08, 0.45, 0.15)
obj = objects.get_object_by_uid(uid)
snap = buffers.get_buffer_snapshot(b"Main", uid)

if obj and snap:
    for i in range(101):
        objects.tuix_progressbar_set_value(obj, i / 100.0)
        engine.main_loop()

buffers.free_buffer(b"Main", uid)
input.stop()
engine.shutdown()

🧩 Widgets

Builder constant What it renders
builders.PROGRESSBAR Horizontal fill bar with customisable chars and colours
builders.CHOICE Keyboard-navigable list menu
builders.INPUT Single-line text input with placeholder support
builders.CANVAS Free-draw surface - pixels, lines, rects, circles, text, sprites

Progressbar

objects.tuix_progressbar_set_value(obj, 0.75)          # 0.0 – 1.0
objects.tuix_progressbar_set_style(obj,
    ord('#'), ord('-'),          # fill char, empty char
    120, 220, 80,                # fill RGB
    50,  50,  50)                # empty RGB

Choice

objects.tuix_choice_set_options(obj, [b"Yes", b"No", b"Maybe"])
# v0.3: no manual feed_input needed (handled by engine/main loop)

if objects.tuix_choice_is_confirmed(obj):
    idx = int(objects.tuix_choice_get_result(obj))

Input

objects.tuix_input_set_placeholder(obj, b"Type here...")
# v0.3: no manual feed_input needed (handled by engine/main loop)

if objects.tuix_input_is_submitted(obj):
    text = objects.tuix_input_get_result(obj)   # bytes

Canvas

objects.tuix_canvas_draw_rect  (obj, x, y, w, h, b'#', filled=1, r, g, b, br, bg, bb)
objects.tuix_canvas_draw_circle(obj, cx, cy, radius, b'O', filled=0, r, g, b, br, bg, bb)
objects.tuix_canvas_draw_line  (obj, x0, y0, x1, y1, b'/', r, g, b, br, bg, bb)
objects.tuix_canvas_draw_text  (obj, x, y, b"hello", r, g, b, br, bg, bb)
objects.tuix_canvas_set_pixel  (obj, x, y, b'*', r, g, b, br, bg, bb)

📁 Examples

Runnable examples are in the examples/ directory:

File Description
examples/widgets/progressbar_dual.py Two bars filling at different speeds
examples/widgets/choice_palette.py Colour palette menu, prints chosen RGB to stdout
examples/widgets/canvas_bounce.py Animated bouncing ball with colour cycling and FPS counter
examples/multimodal/focus_routing.py Keyboard + mouse focus routing between choice and input
examples/showcase/sequential_journey.py Full sequential demo (progressbar → choice → input → canvas)
examples/showcase/buffer_hierarchy_demo.py Parent-child buffer hierarchy and z-index layering (v0.3)
examples/showcase/scene_stats_demo.py Scene stats snapshots and compaction APIs (v0.3)
python examples/widgets/canvas_bounce.py

📚 Documentation

Full documentation is available at: https://docs.custosh.dev/docs/tuix-core


🧪 Tests

pip install pytest
pytest

50 tests covering engine lifecycle, scene management, registry, multimodal focus APIs, all four widget builders, v0.3 buffer hierarchy/snapshot APIs, scene compaction/stats, canvas draw calls, and examples layout integrity.


📊 Benchmarks

Benchmarked against blessed, terminal-kit, Ink, ReziTUI, Bubble Tea, Ratatui, OpenTUI.Core, OpenTUI.React, TUIX.Renderer, TUIX.Core, TUIX.Python, Rich, Urwid, PromptToolkit.

Latest run metadata (from BENCHMARKS.md):

  • Date: 2026-04-05
  • Runtime/OS: Node v22.19.0 on Windows_NT 10.0.26200 (win32 x64)
  • CPU/RAM: 12th Gen Intel Core i5-12450HX (12 cores), 24 GB RAM

Expanded benchmark runs include CI95 intervals and two byte metrics:

  • Bytes(local): bytes reported by each framework's own counters.
  • Bytes(pty): observed PTY bytes for cross-framework comparison.

Startup

Framework Mean ops/s Peak RSS
TUIX.Python 229µs 4.4K 18.4 MB
TUIX.Core 257µs 3.9K 4.0 MB
TUIX.Renderer 258µs 3.9K 3.9 MB
Ratatui 195µs 5.1K 27.0 KB
ReziTUI 197µs 5.1K 81.7 MB
Ink 2.51ms 398 65.0 MB
Blessed 25.64ms 39 152.1 MB

Tree Construction (1,000 items)

Framework Mean ops/s Peak RSS
TUIX.Core 72µs 13.9K 4.0 MB
TUIX.Renderer 84µs 12.0K 3.9 MB
OpenTUI.Core 97µs 10.4K 35.0 MB
TUIX.Python 125µs 8.0K 18.7 MB
Ratatui 986µs 1.0K 27.0 KB
Bubble Tea 1.05ms 955 16.2 MB
Ink 42.86ms 23 355.0 MB

Re-render

Framework Mean ops/s Peak RSS
TUIX.Renderer 10µs 95.9K 3.9 MB
TUIX.Python 13µs 79.9K 18.7 MB
TUIX.Core 23µs 44.0K 4.1 MB
Blessed 26µs 39.1K 520.5 MB
Ratatui 57µs 17.6K 27.0 KB
Bubble Tea 91µs 11.0K 16.2 MB
Ink 647µs 1.5K 354.9 MB

Virtual List (100,000 items, viewport 40)

Framework Mean ops/s Peak RSS
TUIX.Core 19µs 53.1K 4.1 MB
OpenTUI.React 41µs 24.7K 38.9 MB
TUIX.Renderer 62µs 16.1K 4.0 MB
TUIX.Python 88µs 11.4K 18.7 MB
Ratatui 97µs 10.3K 27.0 KB
Ink 704µs 1.4K 356.7 MB

Terminal Full UI (120x40, 24 services)

Framework Mean ops/s Peak RSS
TUIX.Core 41µs 24.2K 4.5 MB
TUIX.Renderer 93µs 10.8K 4.3 MB
TUIX.Python 118µs 8.5K 19.3 MB
Ratatui 170µs 5.9K 27.0 KB
OpenTUI.Core 278µs 3.6K 36.9 MB
Bubble Tea 497µs 2.0K 20.7 MB
Ink 1.61ms 622 357.1 MB

Across the expanded suite, TUIX.Core leads many throughput-heavy scenarios (for example virtual-list and terminal-full-ui), while TUIX.Renderer and TUIX.Python are especially strong in low-latency rerender and input-oriented terminal workloads. Peak RSS for TUIX variants remains low versus most JavaScript/Python UI stacks.

Full tables (including CI95, CV, wall time, RSS growth, Bytes(local), and Bytes(pty)) are in BENCHMARKS.md.


⚙️ Architecture

tuix.core
├── engine.py       init / shutdown / main_loop
├── scenes.py       scene create / free / clear
├── registry.py     active scene pointer
├── builders.py     builder name constants + register_standard()
├── objects.py      widget API (progressbar / choice / input / canvas)
├── buffers.py      buffer snapshots + hierarchy + z-index
├── input.py        input listener + snapshot
├── _structs.py     ctypes mirror of C structs
└── _tuix_cy.pyx    Cython extension - all C calls go through here

The C core handles layout geometry, compositing, and rendering to the terminal. Python drives scene/object lifecycle and can read state safely through snapshots.


⚙️ Future Plans

  • Scrollable containers and nested layouts
  • Theme / style system
  • Async-friendly loop integration

Support / Donate

If you enjoy using TUIX, you can support its development:


📜 License

MIT License © 2026 custosh

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

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

tuix_core-0.3.tar.gz (279.1 kB view details)

Uploaded Source

Built Distributions

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

tuix_core-0.3-cp313-cp313-win_amd64.whl (424.6 kB view details)

Uploaded CPython 3.13Windows x86-64

tuix_core-0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

tuix_core-0.3-cp313-cp313-macosx_10_13_universal2.whl (606.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

tuix_core-0.3-cp312-cp312-win_amd64.whl (425.3 kB view details)

Uploaded CPython 3.12Windows x86-64

tuix_core-0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tuix_core-0.3-cp312-cp312-macosx_10_13_universal2.whl (610.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

tuix_core-0.3-cp311-cp311-win_amd64.whl (425.6 kB view details)

Uploaded CPython 3.11Windows x86-64

tuix_core-0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tuix_core-0.3-cp311-cp311-macosx_10_9_universal2.whl (612.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

tuix_core-0.3-cp310-cp310-win_amd64.whl (425.2 kB view details)

Uploaded CPython 3.10Windows x86-64

tuix_core-0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tuix_core-0.3-cp310-cp310-macosx_10_9_universal2.whl (612.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file tuix_core-0.3.tar.gz.

File metadata

  • Download URL: tuix_core-0.3.tar.gz
  • Upload date:
  • Size: 279.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tuix_core-0.3.tar.gz
Algorithm Hash digest
SHA256 975bda1a422dce43e8efe24932e6def0f68e654c26997f95111bc7ffdd1e952f
MD5 476b35021caac0a1541fd361cfbd6aae
BLAKE2b-256 ed6f60c9d2fead6db4bf8590b1d9e0573b588cf82b633e212346039729565818

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3.tar.gz:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: tuix_core-0.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 424.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tuix_core-0.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 edf8ab98ae93fe9a90ea757b74529172c6b8e263636c314a0f5027137b18b117
MD5 f7a3ee51042c0519547847c1d370974e
BLAKE2b-256 a82ad6e2d37bc46b4a57f8878a40774b791786d03eacadc9e7a8f60b6c90c18b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp313-cp313-win_amd64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3561a395c8cbd34b696cac9f7057ee6ec251dbfa7bb6c48647a1cb43609a2cf
MD5 05bc187191c06c57ec9b18a2fb091884
BLAKE2b-256 e5f64da23f1ad13092037d6df297ff0482038ac6054b13393b9d2b5db84c52bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 bc54bd724d95e80d2b91edb38cbcd768c5a8e8b5ba8c3b0b3ed2fdf656102c82
MD5 7a741db63b3ad014c69c5964e9902820
BLAKE2b-256 313a58795a0e5eef25e9779dec8040c7351a07321ef5883fd95072db01acffb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp313-cp313-macosx_10_13_universal2.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tuix_core-0.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 425.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tuix_core-0.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0a1132a4b18c6c44c1cf7b6d0ebca767d167e807e31cd40e208c81422c226976
MD5 f91dfe4d01abb27bf1e1516bb3e071cc
BLAKE2b-256 f71bc385d5e020ab919a2c9eed976aee87bb1618b0b807c44c9e16dcd0346d48

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp312-cp312-win_amd64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b686e796334f7391fc6843c49cd7c1a715c60b988b509a0c9254b83e4b29f64
MD5 1655168277c47af1c5c422d644af3ed3
BLAKE2b-256 d23a74e9c1926bb9a7282a99c032048c20f451ace055652ee9abe43397ab5f83

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 42e93a38aa92fccb942f86f32351a5acdab9a392887fed997ecf7faeaa2196b8
MD5 655674f94e76a41e8a1dfffb28885cba
BLAKE2b-256 18a6bd61756e39621b70c6d789468911869b51bb44f7c31f30bd883dd37c3cb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp312-cp312-macosx_10_13_universal2.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tuix_core-0.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 425.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tuix_core-0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 11d52db7bf64d0d4ca0c1c9c8f83881c2e93b4d85a00c1cd2d80a95522dc65cd
MD5 406c78bc21dd997357ae58778925106f
BLAKE2b-256 944e62435c980d04351ee0fdd6be82c36b1af477f03c053c04392e041d19a785

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp311-cp311-win_amd64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d925c3f8665371ab2973a3d575a370ec57912c3e5e3fc5fd8d050089dfa62d56
MD5 a1034d9064faa44d2f2a8b266a32b890
BLAKE2b-256 e6b003a1c242d6aa52228f10d2e1f463480fabc9fb8fb4112dcee045f81db1b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 14b20bfd1a6afe61db715b2fa2d2405331dcf428738fa45673595d425cc4a9f6
MD5 06fbaaa6ae5848319fef17a2d0e295fd
BLAKE2b-256 f2001ed6e7b555a1b5652741fd462829156816df0adde7498251f3619b889cda

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp311-cp311-macosx_10_9_universal2.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tuix_core-0.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 425.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tuix_core-0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4ff4b390f7a15f4398a7d6809af9b690f65a6a55e38eb799351fbb440d9b3725
MD5 86332261ae09a91530d9a070ca964be4
BLAKE2b-256 808b3c4444544bdc55139e38db056a41b4a7cc85020af9ea5e1fda7c06dd8f2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp310-cp310-win_amd64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ec4e6767c91b54677760a82416debed8ba04c5c35e1d8660180cfdd211db803
MD5 0f5fe0b2e2469652f990243dfbccf1c1
BLAKE2b-256 f95dec4cc185ec3df49708f4b0be36dd6df133e229eb12b6656179db6a2ddc3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tuix_core-0.3-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tuix_core-0.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3910075a55390b593e2409de0e5f0a9fbd6eb4b861406c694c8302fbc40e6c2f
MD5 5730e454d52b5d443dbe6991acd3895b
BLAKE2b-256 624f4af1392c09a30d8fddb2ddb8c8eb9acacd58f4b8758476f952abe375d0b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tuix_core-0.3-cp310-cp310-macosx_10_9_universal2.whl:

Publisher: build.yml on anonim1321/build-tuix-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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