An idiomatic, data-driven, REPL-friendly Clojure client for OCI-compliant container engines like Docker and Podman.
Contajners is an idiomatic Clojure client for OCI-compliant container engines like Docker and Podman. It provides a data-driven, REPL-friendly API that allows developers to manage containers, images, and other resources programmatically from Clojure code. The library solves the problem of interacting with container engines in a way that feels native to Clojure, avoiding external tooling or cumbersome wrappers.
Clojure developers and DevOps engineers who need to automate container management tasks, build containerized applications, or integrate Docker/Podman operations into Clojure-based tooling and pipelines.
Developers choose Contajners for its idiomatic Clojure design, which offers a more seamless and expressive alternative to generic Docker clients. Its REPL-friendly approach enables interactive debugging and exploration, while support for both Docker and Podman provides flexibility across different container ecosystems.
An idiomatic, data-driven, REPL friendly clojure client for OCI container engines
Uses data-driven, functional patterns that feel natural in Clojure, avoiding boilerplate and complexity, as emphasized in the README for a seamless integration with Clojure idioms.
Provides a unified interface for both Docker and Podman, allowing flexibility across popular container engines without the need to switch libraries, directly from the README's supported engines list.
Built for interactive development, enabling real-time exploration and manipulation of container resources from the Clojure REPL, which enhances debugging and iterative workflows.
Can be used with Babashka for scripting, as indicated by the compatibility badge, making it easy to write and deploy container management scripts in Clojure.
New API specs are added manually as released, which can delay access to the latest features and require users to rely on git libraries for updates, as noted in the README.
Releases to Clojars are made on request or for new features, potentially leading to version stagnation and lack of timely bug fixes, which might affect production stability.
Requires deep knowledge of Clojure and its ecosystem, making it less accessible for teams not already invested in the language or those looking for language-agnostic solutions.
Docker + Node = Dockerode (Node.js module for Docker's Remote API)
:whale: .NET (C#) Client Library for Docker API
Go client for the Docker Engine API.
Maven plugin for running and creating Docker images
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.