{"categories":[{"label":"Application Frameworks","url":"https://skillfed.io/packages/category/software-development-libraries-application-frameworks/3"}],"enrichment":{"capability":"A Python framework for developing charms\u2014declarative, event-driven applications that manage Kubernetes workloads and machines in Juju environments.","skillfed_tags":["juju","charm-development","kubernetes-orchestration"],"use_cases":["Write a Kubernetes charm to manage a containerized application's lifecycle, configuration, and relations within Juju.","Unit test charm logic using ops.testing.Context to simulate Juju events and verify charm behavior.","Define and manage container workloads via the Pebble API, including service startup, configuration, and health checks.","Handle charm configuration changes and relation events to coordinate multi-charm deployments.","Integrate observability into charms using opentelemetry-api for tracing and metrics."],"what_it_does":"The ops library is the official Python framework for writing charms\u2014Juju's declarative, event-driven model for managing Kubernetes workloads and machines. It provides a base class (CharmBase) that charm authors subclass to observe Juju events (config changes, pebble readiness, relation changes) and pair them to handler methods. The library abstracts Juju's event model and state management, letting developers focus on charm logic rather than low-level protocol details.\n\nOps includes a testing module (ops.testing) for unit testing charms in isolation, a Pebble API for managing container workloads, and integrations with PyYAML for configuration, websocket-client for Juju communication, and opentelemetry-api for observability. It is actively maintained by Canonical and is the recommended way to write new charms; the framework is production-stable and widely used in the Juju ecosystem.","worth_installing":"Yes. If you are writing charms for Juju (Kubernetes or machine), ops is the standard, actively maintained framework with low install friction and no security vulnerabilities. It is production-stable and the recommended choice for new charm development. Install it as part of your charm project's dependencies via charmcraft or requirements.txt."},"id":"ops","links":{"html":"https://skillfed.io/packages/ops","md":"https://skillfed.io/packages/ops.md","pypi":"https://pypi.org/project/ops/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-07-30","license_spdx":"Apache-2.0","license_treatment":"permissive","name":"ops","python_support":"supports_current","summary":"The Python library behind great charms"},"popularity":{"monthly_downloads":484840,"position":6401,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"3.8.1"}
