A task-runner that automatically resolves dependency issues
Julia
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test
.gitignore
.travis.yml
LICENSE.md
README.md
REQUIRE
appveyor.yml

README.md

Arbiter.jl

Build Status Build status codecov.io

Arbiter is a task-scheduler that resolves task dependencies. Given a set of tasks and their dependencies, Arbiter will run the tasks such that no task is run before a dependency has already successfully run.

This package is a Julia port of Arbiter.

Installation

Arbiter.jl is available in METADATA. To install:

Pkg.add("Arbiter")

Usage

To create a task:

import Arbiter: ArbiterTask

task = ArbiterTask(name, func)

# A task with dependencies
dependent_task = ArbiterTask(name, func, (dependency1, dependency2))

To run tasks:

import Arbiter.Sync: run_tasks

results = run_tasks(tasks)

Tasks cannot currently be run asynchronously. That feature is waiting on the WIP unified Channel interface for threaded and parallel Julia.

Differences From Python Arbiter

Names are all casted to Symbols. Any value can be used as a name, but the value returned in the results will be a Symbol.

Nullables are used where Python may have had None, for type stability.

Various names have changed to become more Julian or avoid conflicts with existing functions or keywords.

License

Arbiter is provided under an MIT License.