Skip to main content

TraceDSA

Interactive Data Structures Visualizer - Built with C++23 + Python Textual TUI

Python 3.10+ License: MIT PyPI version GitHub repo

TraceDSA Screenshot

Features

  • 9 data structures with live ASCII visualization
  • C++23 backend binaries via subprocess bridge
  • Real-time operation log with color-coded responses
  • DS info screen for summary, Big O, pros/cons, usage
  • Search and filter modules from the menu
  • Min/Max heap toggle
  • Cross-platform support (Linux, Windows, macOS)
  • Zero-config install via pipx

What is it

TraceDSA is a terminal user interface that wraps custom C++23 data structure implementations in an interactive Python TUI. It lets you explore how stacks, queues, trees, and heaps behave with live ASCII art, operation logging, and instant feedback after every command.

Install & Run

pip install tracedsa
tdsa

Or for Modern Linux distros:

python3 -m venv .venv
source .venv/bin/activate
pip install tracedsa
tdsa

Press s or click START on the splash screen.

Data Structures

Category Implementations Visualization
Stack Array, Linked List Vertical
Queue Array, Linked List, Circular Horizontal
Linked List Singly, Doubly Arrow nodes
BST Binary Search Tree Sideways tree
Heap Min-Heap, Max-Heap Tree + Array

How it works

TraceDSA spawns standalone C++23 binaries and communicates via a simple stdin/stdout protocol. The Python Textual TUI sends commands (PUSH 10, ENQUEUE 5, etc.) and updates visualizations instantly. No STL containers everything built from scratch.

Project Architecture

TraceDSA/
├── C++ Core (no STL containers)
│   ├── ArrayList/          (header-only dynamic array)
│   ├── Stack/, Queue/, LinkedList/, BST/, PriorityQueue/
│   └── *_interactive.cpp   (stdin/stdout bridge)
│
├── tracedsa/ (Python TUI)
│   ├── __main__.py
│   ├── bridge.py
│   ├── screens/
│   ├── widgets/ (ascii_array, ascii_tree, ascii_heap, etc.)
│   └── bins/{linux,windows,macos}/   ← compiled binaries
|
└── makefiles/
|    ├── Makefile         (Running the TestingModules.cpp file)
|    ├── makefile.windows (build Windows binaries with MinGW)
|    ├── makefile.inter   (build C++ interactive binaries for Linux)
|    └── makefile.macos   (build macOS binaries with clang)
|
└── pyproject.toml  (package config for pipx installation)
└── docs/  (screenshots, architecture diagrams, design docs)

Development

Prerequisites

  • C++23 compiler (g++)
  • Python 3.10+
  • make

Build & Run

# 1. Build C++ interactive binaries
make -f makefile.inter

# 2. Run the TUI
cd tracedsa && python -m tracedsa

For Windows builds:

make -f makefile.windows

Requirements

  • Python 3.10+
  • C++23 compliant compiler for development (g++ recommended)

Built With

  • Python — Textual framework for the TUI
  • C++23 — All data structures implemented from scratch (no STL containers)

Roadmap

  • Sorting & Searching algorithms
  • Keyboard shortcuts for all operations
  • Session export / snapshots
  • Comprehensive test suite

Contributing

Contributions are welcome! New data structures, bug fixes, docs, UI improvements please read CONTRIBUTING.md first.

Author

HA - GitHub · LinkedIn

License

MIT LICENSE


Made with ❤️ for learning and teaching Data Structures & Algorithms.

Metadata

Release files for tracedsa 1.0.3

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

Source distribution (sdist)

Source distribution for tracedsa 1.0.3
File Size Uploaded Provenance Actions
tracedsa-1.0.3.tar.gz 60.2 kB Without provenance Details for tracedsa-1.0.3.tar.gz

Built distribution (wheel)

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

Total release size: 5.7 MB

Release files / tracedsa-1.0.3.tar.gz

Download URL tracedsa-1.0.3.tar.gz
Size 60.2 kB
Tags Source
SHA-256 checksum
How to use checksums
948372d9dd76e47985e20848a4832f2e0489ae7dfe80cdad7ffd280e9dc636d5
BLAKE2b-256 checksum
How to use checksums
77a6e8151cbb9d367bf44be3a14cc0f6c4dae756282a7b7ca6dfedd5a60f0fdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / tracedsa-1.0.3-py3-none-any.whl

Download URL tracedsa-1.0.3-py3-none-any.whl
Size 5.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
fd94560c2148c7dffd295ee4df1a4178ffd60501b7d5714ba871ee3cea2bcb1a
BLAKE2b-256 checksum
How to use checksums
63a2f75b96fc7b46ca29a95bc8b6ecacf12f0f7eff6eb1431ba2d57d72a8e16c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for tracedsa 1.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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