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.
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-sessionsuv
uv add openjd-sessionspoetry
poetry add openjd-sessionsInstalling 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
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
openjd-modelParses, validates, and constructs Open Job…
permissive · top 15,000 on PyPI
noxNox automates testing across multiple Python…
permissive · top 5,000 on PyPI
jobflowJobflow is a Python library for defining and…
permissive · top 15,000 on PyPI
scheduleSchedule provides a human-friendly API for…
permissive · top 5,000 on PyPI
timeloopTimeloop runs periodic tasks at fixed intervals…
permissive · top 15,000 on PyPI
ppftppft executes Python functions in parallel…
permissive · top 5,000 on PyPI
pulsar-galaxy-libPulsar Galaxy Lib is a Python server that…
permissive · top 15,000 on PyPI
custodianCustodian is a just-in-time job management…
permissive · top 15,000 on PyPI
APSchedulerAPScheduler lets you schedule Python code to…
permissive · top 1,000 on PyPI
pgqueuerPgQueuer turns PostgreSQL into a background job…
permissive · top 15,000 on PyPI