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
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.