Skip to content

Repository files navigation

RushTI

Parallel TI execution engine for IBM Planning Analytics

PyPIPythonLicense


RushTI transforms sequential TurboIntegrator execution into intelligent, parallel workflows. Define task dependencies as a DAG, and RushTI schedules them across multiple workers — starting each task the moment its predecessors complete.

What's New in 2.0

  • DAG Execution — True dependency-based scheduling replaces wait-based sequencing
  • JSON Task Files — Structured format with metadata, settings, and stages
  • Self-Optimization — EWMA-based learning reorders tasks from historical performance
  • Checkpoint & Resume — Automatic progress saving with failure recovery
  • Exclusive Mode — Prevents concurrent runs on shared TM1 servers
  • Statistics Storage (SQLite or DynamoDB) — Persistent execution history with dashboards and analysis
  • TM1 Integration — Read tasks from and write results to a TM1 cube
  • 100% Backwards Compatible — Legacy TXT task files work without changes

Installation

pip (recommended)

pip install rushti

For the latest beta:

pip install rushti --pre

uv

uv pip install rushti

Executable (no Python required)

Download rushti.exe from GitHub Releases — includes all dependencies.

Quick Start

1. Configure TM1 connection

# config/config.ini[tm1-finance]address = localhost
port = 12354
ssl = true
user = admin
password = apple

RushTI looks for config.ini under config/ (or RUSHTI_DIR). To point a single run at a different file — e.g. a config.ini shared with other tm1py utilities — pass --config PATH to any TM1-connecting command (run, build, tasks, resume).

2. Create a task file

{
"version": "2.0",
"tasks": [
{ "id": "1", "instance": "tm1-finance", "process": "Extract.GL.Data" },
{ "id": "2", "instance": "tm1-finance", "process": "Extract.FX.Rates" },
{
"id": "3",
"instance": "tm1-finance",
"process": "Transform.Currency",
"predecessors": ["1", "2"]
},
{
"id": "4",
"instance": "tm1-finance",
"process": "Build.Reports",
"predecessors": ["3"]
}
]
}

3. Validate and run

rushti tasks validate --tasks daily-refresh.json --skip-tm1-check
rushti run --tasks daily-refresh.json --max-workers 4

Documentation

Full documentation is available at cubewise-code.github.io/rushti/docs

Website

Visit cubewise-code.github.io/rushti for interactive demos, feature overviews, and architecture visualizations.

Links

Built With

TM1py — Python interface to the TM1 REST API

License

MIT — see LICENSE for details.

About

Parallel TI execution engine for IBM Planning Analytics

Topics

Resources

Contributing

Stars

12 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages