Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Building from Source

For developers who want to compile Trial Submission Studio from source code.

Prerequisites

Required

  • Rust 1.92+ - Install via rustup
  • Git - For cloning the repository

Platform-Specific Dependencies

macOS

No additional dependencies required.

Linux (Ubuntu/Debian)

sudo apt-get install libgtk-3-dev libxdo-dev

Windows

No additional dependencies required.

Clone the Repository

git clone https://github.com/rubentalstra/trial-submission-studio.git
cd trial-submission-studio

Verify Rust Version

rustup show

Ensure you have Rust 1.92 or higher. To update:

rustup update stable

Build

Debug Build (faster compilation)

cargo build

Release Build (optimized, slower compilation)

cargo build --release

Run

Debug

cargo run --package tss-gui

Release

cargo run --release --package tss-gui

Or run the compiled binary directly:

./target/release/tss-gui        # macOS/Linux
.\target\release\tss-gui.exe    # Windows

Run Tests

# All tests
cargo test

# Specific crate
cargo test --package xport

# With output
cargo test -- --nocapture

Run Lints

# Format check
cargo fmt --check

# Clippy lints
cargo clippy -- -D warnings

Project Structure

Trial Submission Studio is organized as a Rust workspace with multiple crates:

trial-submission-studio/
├── crates/
│   ├── tss-gui/          # Desktop application
│   ├── xport/            # XPT file I/O
│   ├── tss-validate/     # CDISC validation
│   ├── tss-map/          # Column mapping
│   ├── tss-normalization/    # Data transformations
│   ├── tss-ingest/       # CSV loading
│   ├── tss-output/       # Multi-format export
│   ├── tss-standards/    # CDISC standards loader
│   ├── tss-model/        # Core types + Polars utilities
│   └── tss-updater/      # Update mechanism
├── standards/            # Embedded CDISC standards
├── mockdata/             # Test datasets
└── docs/                 # Documentation (this site)

Third-Party Licenses

When adding or updating dependencies, regenerate the licenses file:

# Install cargo-about (one-time)
cargo install cargo-about

# Generate licenses
cargo about generate about.hbs -o THIRD_PARTY_LICENSES.md

IDE Setup

RustRover / IntelliJ IDEA

  1. Open the project folder
  2. The Rust plugin will detect the workspace automatically

VS Code

  1. Install the rust-analyzer extension
  2. Open the project folder

Next Steps