Why Paral?
Run Tasks in Parallel
Paral can execute multiple tasks simultaneously, leveraging concurrency to speed up workflows — perfect for builds, data processing, and batch jobs.
Run Tasks in Sequence
Define clear dependencies so that tasks run in the exact order you need. Ideal for build → test → deploy pipelines where each step depends on the previous one.
Bash Script Integration
Seamlessly call existing Bash scripts within your Paral tasks, letting you reuse existing automation without rewriting your scripts.
Usage Examples
File Processing and Backup
Iterate over a list of files, process each file, detect text files, and add them to a backup list. Finally, print the backup list if it contains any files.
file-processing-and-backup.paral
files = ["image.png", "notes.txt", "script.py", "readme.txt"]
backup_list = []
@for files
task process_files {
-> @printf("Processing file %s (index %d)", @value, @key)
-> @if(@contains(@value, ".txt")) {
-> @printf("Found text file: %s", @upper(@value))
-> @append(backup_list, @value)
}
}
@depend process_files
@for backup_list
task print_backup {
-> @printf("Starting backup process for %s", @value)
}