General libraries

This page lists non-interface libraries. The search box supports regular expressions.

Library status is shown in the left column. See tooltips, or click here for a key.

Description

Recommended for use in new charms today!

Recommended for use in new charms today!

⚗️
Experimental, use at your own risk!

Experimental, use at your own risk!

💬
Team internal lib, may not be stable for external use.

Team internal lib, may not be stable for external use.

🚫
Deprecated library, not recommended for use in new charms.

Deprecated library, not recommended for use in new charms.

None of the above.

Tags are shown in the description column. See tooltips, or click here for a key.

Tag

Description

#data

Database and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.

#internal

Scoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team.

#networking

External connectivity, DNS, routing, and access management: ingress, load balancing, reverse proxy integration, DNS record management, IP routing, and service exposure.

#observability

Telemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.

#operations

Charm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.

#security

TLS certificate management, certificate transfer, secret storage, and security-related integrations.

#substrate

Charm-to-machine interaction: package management, system configuration, file operations, container resource management.

Library

Kind

Description

Recommended for use in new charms today!
charm-refresh (docs, src)
PyPI
In-place rolling refreshes of stateful charmed applications.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
Recommended for use in new charms today!
charmlibs.apt (docs, src)
PyPI
Use apt to install and manage packages.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
charmlibs.passwd (docs, src)
PyPI
Manage Linux users and groups.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
charmlibs.pathops (docs, src)
PyPI
Substrate agnostic file operations.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
charmlibs.rollingops (docs, src)
PyPI
Coordinate rolling operations for charms, including across applications or clusters.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
Recommended for use in new charms today!
charmlibs.snap (docs, src)
PyPI
Use snapd to install and manage packages.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
charmlibs.sysctl (docs, src)
PyPI
Create and configure sysctl options.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
charmlibs.systemd (docs, src)
PyPI
Use systemd to start, stop, and manage system services.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
Recommended for use in new charms today!
loki_k8s.charm_logging (src)
Charmhub
Add charm code logging to logs sent via loki_push_api.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
charms.proxylib (src)
PyPI
A library that helps charms direct HTTP requests and subprocess calls through the model-configured proxy environment.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #networkingExternal connectivity, DNS, routing, and access management: ingress, load balancing, reverse proxy integration, DNS record management, IP routing, and service exposure.
ops.manifest (src)
PyPI
Work with Kubernetes manifests.
☸️K8sCompatible with Kubernetes charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
kubernetes_charm_libraries.multus (src)
Charmhub
Use the Multus Kubernetes Container Network Interface.
☸️K8sCompatible with Kubernetes charms. #networkingExternal connectivity, DNS, routing, and access management: ingress, load balancing, reverse proxy integration, DNS record management, IP routing, and service exposure.
observability_libs.cert_handler (src)
Charmhub
Wraps the requirer side of the tls-certificates-interface charm’s tls_certificates lib.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #securityTLS certificate management, certificate transfer, secret storage, and security-related integrations.
observability_libs.kubernetes_compute_resources_patch (src)
Charmhub
Patch Kubernetes compute resource limits.
☸️K8sCompatible with Kubernetes charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
observability_libs.metrics_endpoint_discovery (src)
Charmhub
Discover metric endpoints exposed by applications deployed to a K8s cluster.
☸️K8sCompatible with Kubernetes charms. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
zookeeper.client (src)
Charmhub
Perform zookeeper operations.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
⚗️
Experimental, use at your own risk!
charm-api (src)
PyPI
Experimental API for writing charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
⚗️
Experimental, use at your own risk!
charms.contextual_status (src)
PyPI
Context manager based library for setting charm statuses.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
⚗️
Experimental, use at your own risk!
charms.reconciler (src)
PyPI
Handle all Juju events in an Ops-based charm with a single method.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
💬
Team internal lib, may not be stable for external use.
charmed-kubeflow-chisme (src)
PyPI
Used internally by the Charmed Kubeflow team.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team.
💬
Team internal lib, may not be stable for external use.
charmed-service-mesh-helpers (src)
PyPI
Used internally by the Service Mesh team.
☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #networkingExternal connectivity, DNS, routing, and access management: ingress, load balancing, reverse proxy integration, DNS record management, IP routing, and service exposure.
💬
Team internal lib, may not be stable for external use.
coordinated-workers (src)
PyPI
Abstractions for charms following the coordinator-worker pattern, used by Observability Team.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
💬
Team internal lib, may not be stable for external use.
cosl (src)
PyPI
Used internally by the Observability Charm Engineering Team. A dependency (via PYDEPS) of popular charm libs such as loki_push_api.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
💬
Team internal lib, may not be stable for external use.
data-platform-helpers (src)
PyPI
Used internally by the Data Charm Engineering team.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mongo-charms-single-kernel (src)
PyPI
Used internally by the Data Charm Engineering team.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
hpc-libs
git
Used internally by HPC charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team.
💬
Team internal lib, may not be stable for external use.
mysql.architecture (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mysql.async_replication (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mysql.backups (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mysql.mysql (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mysql.s3_helpers (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
mysql.tls (src)
Charmhub
Shared code between the mysql and mysql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #securityTLS certificate management, certificate transfer, secret storage, and security-related integrations.
💬
Team internal lib, may not be stable for external use.
opensearch.helper_cos (src)
Charmhub
Relies on data_platform_helpers.
#internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
💬
Team internal lib, may not be stable for external use.
pgbouncer_k8s.pgb (src)
Charmhub
Shared code between pgbouncer and pgbouncer-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
💬
Team internal lib, may not be stable for external use.
postgresql_k8s.postgresql (src)
Charmhub
Shared code between the postgresql and postgresql-k8s charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #internalScoped to a charm team. Shares implementation logic within a set of related charms maintained together. Not intended for use by developers outside the publishing team. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
🚫
Deprecated library, not recommended for use in new charms.
charm-helpers (docs, src)
PyPI
Pre-Ops library used by reactive charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
charm-json (src)
PyPI
JSON typed relation data – unnecessary with Ops 2.23+ due to the addition of typed relation data.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
charms.docker (src)
PyPI
Legacy library used by the docker-layer reactive charm.
#substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
charms.reactive (docs, src)
PyPI
Legacy library used to implement reactive charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
charms.templating.jinja2 (docs, src)
PyPI
Legacy library for Jinja templating in reactive charms.
#operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
jujubigdata (docs, src)
PyPI
Legacy library for developing Big Data charms.
#dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
🚫
Deprecated library, not recommended for use in new charms.
jujuresources (docs, src)
PyPI
Legacy library for loading binary resources. New charms should use ops.Model.resources.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
oci-image (src)
PyPI
Work with OCI images in podspec charms. New Kubernetes charms should use the sidecar pattern. Repo archived in March 2024.
☸️K8sCompatible with Kubernetes charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
ops_reactive_interface (docs, src)
PyPI
Helper for interface library developers, to allow an Ops-based interface library to interact with legacy, reactive charms.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
sborl (src)
PyPI
Legacy library for implementing interface libraries. New interface libraries can use the typed relation data feature available in Ops 2.23+.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
serialized-data-interface (src)
PyPI
Relation data validation – use the features available in Ops instead.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
data_platform_libs.data_models (src)
Charmhub
pydantic-based typed relation data – unnecessary with Ops 2.23+ due to the addition of typed relation data.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores.
🚫
Deprecated library, not recommended for use in new charms.
data_platform_libs.data_secrets (src)
Charmhub
Secrets-related helpers for interfaces. Deprecated in favor of the data-platform-libs.data_inferfaces interface lib.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #dataDatabase and storage integration: relational databases, NoSQL, object storage, message queues, key-value stores. #securityTLS certificate management, certificate transfer, secret storage, and security-related integrations.
🚫
Deprecated library, not recommended for use in new charms.
data_platform_libs.upgrade (src)
Charmhub
Manage in-place upgrades. Deprecated in favor of charm-refresh.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
harness_extensions.capture_events (src)
Charmhub
Helper for legacy harness tests. New charms should write state-transition tests with ops[testing] instead.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
harness_extensions.evt_sequences (src)
Charmhub
Helper for legacy harness tests. New charms should write state-transition tests with ops[testing] instead.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
observability_libs.juju_topology (src)
Charmhub
Deprecated in favor of cosl.juju_topology.JujuTopology.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
🚫
Deprecated library, not recommended for use in new charms.
observability_libs.kubernetes_service_patch (src)
Charmhub
Deprecated in favor of ops.Unit.set_ports.
☸️K8sCompatible with Kubernetes charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.apt (src)
Charmhub
Use apt to install and manage packages. Deprecated in favor of charmlibs.apt.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.dnf (src)
Charmhub
Use dnf to install and manage packages – modern charms all run on Ubuntu, so this shouldn’t be needed.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.grub (src)
Charmhub
Use GRUB to manage kernel configuration. This library has fallen out of use and is no longer actively maintained. Contact Charm Tech if you have a need for this functionality in your charm.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.juju_systemd_notices (src)
Charmhub
Use systemd to observe and emit notices when services change state. This library has fallen out of use and is no longer actively maintained. Contact Charm Tech if you have a need for this functionality in your charm.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.passwd (src)
Charmhub
Manage Linux users and groups. Deprecated in favor of charmlibs.passwd.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.snap (src)
Charmhub
Use snapd to install and manage packages. Deprecated in favor of charmlibs.snap.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.sysctl (src)
Charmhub
Create and configure sysctl options. Deprecated in favor of charmlibs.sysctl.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
operator_libs_linux.systemd (src)
Charmhub
Use systemd to start, stop, and manage system services. Deprecated in favor of charmlibs.systemd.
🖥️machineCompatible with machine charms. #substrateCharm-to-machine interaction: package management, system configuration, file operations, container resource management.
🚫
Deprecated library, not recommended for use in new charms.
rolling_ops.rollingops (src)
Charmhub
Legacy library for performing “rolling” operations across units, for example rolling restarts. New charms should use charmlibs.rollingops.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #operationsCharm lifecycle, coordination, and general-purpose utilities not specific to any domain: rolling operations, leader coordination, status management.
🚫
Deprecated library, not recommended for use in new charms.
tempo_coordinator_k8s.charm_tracing (src)
Charmhub
Provided by the tempo-coordinator-k8s charm. Consider using ops[tracing] instead.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.
🚫
Deprecated library, not recommended for use in new charms.
tempo_k8s.charm_tracing (src)
Charmhub
Deprecated in favor of the tempo-coordinator-k8s charm’s libs. New charms should use ops[tracing] for tracing charm code instead.
🖥️machineCompatible with machine charms. ☸️K8sCompatible with Kubernetes charms. #observabilityTelemetry and monitoring: metrics, logging, tracing, profiling, dashboarding, alerting, and integration with the Canonical Observability Stack.