Skip to main content

Visualize Data Structures in real time — Python TUI + C++ backend

Project description

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

  • PythonTextual 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.

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

tracedsa-1.0.2.tar.gz (60.1 kB view details)

Uploaded Source

Built Distribution

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

tracedsa-1.0.2-py3-none-any.whl (5.7 MB view details)

Uploaded Python 3

File details

Details for the file tracedsa-1.0.2.tar.gz.

File metadata

  • Download URL: tracedsa-1.0.2.tar.gz
  • Upload date:
  • Size: 60.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for tracedsa-1.0.2.tar.gz
Algorithm Hash digest
SHA256 9426358b5ae36382fc6d72665449595411433b097d4f322f038b736f37d99bf6
MD5 5681f848df711d2a76dd639938e33fe1
BLAKE2b-256 571bff5e10e9661d005fc20fae117ab338e23c8fbd0ad06287a65a278f83b213

See more details on using hashes here.

File details

Details for the file tracedsa-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: tracedsa-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for tracedsa-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f118b75274a75c23d48f49ccf85920dd6e8c1c0defc46a4b85d249e89e2132d5
MD5 5b4477f39650a26f4fd77b10ec4f11d2
BLAKE2b-256 65d1e9f5ea38f62a9630ea1afe14337efdd107c8c784b1b9267a7dc3b61ed2a9

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