skillfed

openjd-sessions

Provides a library that can be used to build a runtime that is able to run Jobs in a Session as defined by Open Job Description.

openjd-sessions v0.10.14 117.4K downloads/30d#12,163 on PyPI10
Permissive license Apache-2.0 Active released

What it is and what it does

openjd-sessions is a Python runtime library for the Open Job Description specification, a portable format for defining render and compute jobs. It manages the execution of jobs within isolated sessions, handling multi-step workflows, parameter iteration, environment setup/teardown, and optional user impersonation. The library works across Linux, macOS, and Windows, and integrates with the openjd-model package to parse and validate job templates.

You use it by decoding a job template, preprocessing parameters, then creating a Session that runs tasks asynchronously via callbacks. The library handles process lifecycle, environment variables, and user context switching—useful for studios and render farms that need portable, secure job execution across different systems without reimplementing job orchestration logic.

Use it for:

  • Building a render farm controller that executes standardized job definitions across multiple machines
  • Running multi-step data processing pipelines with isolated environments and parameter sweeps
  • Executing untrusted or user-submitted jobs in isolated user contexts for security
  • Orchestrating complex VFX or animation workflows with job templates that are portable between studios
  • Iterating over parameter spaces (e.g., frame ranges, quality levels) with automatic task distribution

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a runtime library for executing Open Job Description jobs in isolated sessions, with support for multi-step workflows, parameter spaces, and optional user impersonation on POSIX and Windows systems.

Yes. The package is actively maintained, has no known vulnerabilities, carries a permissive Apache-2.0 license, and installs with low friction. It fills a specific niche for portable job execution in render and compute workflows. Install if you need standards-based job orchestration; skip if you're building a general-purpose task queue or don't require the Open Job Description specification.

Install

openjd-sessions on PyPI

pip

pip install openjd-sessions

uv

uv add openjd-sessions

poetry

poetry add openjd-sessions

Installing openjd-sessions

Before you install

Low friction installation with a pure Python wheel. The package is actively maintained with a recent release and no known vulnerabilities. It requires openjd-model, psutil, and pywin32 as runtime dependencies.

License in practice

Licensed under Apache-2.0 (permissive), which allows free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

from openjd.sessions import Session, ActionState, ActionStatus
from openjd.model import create_job, decode_job_template, preprocess_job_parameters
from threading import Event

job_template = decode_job_template(template={...})
job_parameters = preprocess_job_parameters(job_template=job_template, job_parameter_values={...}, ...)

action_event = Event()
def callback(session_id: str, status: ActionStatus) -> None:
    if status.state != ActionState.RUNNING:
        action_event.set()

with Session(session_id="demo", job_parameter_values=job_parameters, callback=callback) as session:
    session.run_task(step_script=..., task_parameter_values=...)

Requires Python 3.9 or higher. On Linux/macOS, sudo access is needed. On Windows, CPython implementation is required (not PyPy or other variants).

Verify before relying

  • Whether the library handles concurrent session execution or is single-session only
  • Performance characteristics when running large parameter spaces or many tasks
  • Exact scope of user impersonation support on Windows (description excerpt cuts off mid-sentence)

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 3 — openjd-model, psutil, pywin32
Maintenance actively maintained — 3 days since the last release
Last repo commit
First released
Downloads 117,426/month — #12,163 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: openjd_sessions-0.10.14-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries

Tags

job execution runtime libraryopen job description sessionsrender job orchestrationmulti-step task runnersession-based job executionportable job specificationworkflow parameter iteration
job-orchestrationrender-farmworkflow-execution

More Libraries packages