{"id":13491172,"url":"https://github.com/babashka/pod-registry","last_synced_at":"2025-06-18T17:07:43.134Z","repository":{"id":37952581,"uuid":"324533444","full_name":"babashka/pod-registry","owner":"babashka","description":"Pod manifests describe where pods can be downloaded, etc.","archived":false,"fork":false,"pushed_at":"2025-05-29T14:38:57.000Z","size":343,"stargazers_count":97,"open_issues_count":0,"forks_count":30,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-29T15:56:52.308Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babashka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-26T10:42:37.000Z","updated_at":"2025-05-29T14:39:01.000Z","dependencies_parsed_at":"2024-02-09T21:26:13.840Z","dependency_job_id":"10117352-97e3-4b24-9c0b-ac4c1e4492c8","html_url":"https://github.com/babashka/pod-registry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/babashka/pod-registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fpod-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fpod-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fpod-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fpod-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babashka","download_url":"https://codeload.github.com/babashka/pod-registry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fpod-registry/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260595742,"owners_count":23033789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:00:54.231Z","updated_at":"2025-06-18T17:07:38.122Z","avatar_url":"https://github.com/babashka.png","language":"Clojure","funding_links":[],"categories":["Clojure"],"sub_categories":[],"readme":"# Pod registry\n\nThe central place to register [babashka pods](https://github.com/babashka/pods) for easy usage with babashka.\n\n- [Pod registry](#pod-registry)\n  - [Loading and using a pod](#loading-and-using-a-pod)\n  - [Registered pods](#registered-pods)\n  - [Registering a pod](#registering-a-pod)\n\n## Loading and using a pod\n\nRegistered pods can be loaded using a qualified symbol and a version string:\n\n```clojure\n(require '[babashka.pods :as pods])\n(pods/load-pod 'org.babashka/buddy \"0.1.0\")\n```\n\nFrom then on, a pod exposes namespaces which can be called like regular Clojure:\n\n```clojure\n(require '[pod.babashka.buddy.core.hash :as hash])\n(hash/md5 \"foo\")\n```\n\n## Registered pods\n\n| Pod | Description | Latest version | Example | Language |\n| --- | --- | --- | --- | --- |\n| [atomisthq/tools.docker](https://github.com/atomisthq/pod-atomisthq-tools.docker) | docker golang utils for clojure | 0.1.0 | [link](https://raw.githubusercontent.com/atomisthq/pod-atomisthq-tools.docker/main/dev/user.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [bogue1979/nats](https://github.com/bogue1979/pod-bogue1979-nats) | interact with NATS | 0.0.6 | [link](examples/bogue1979_nats.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [borkdude/clj-kondo](https://github.com/clj-kondo/clj-kondo) | A static analyzer and linter for Clojure code that sparks joy | 2025.02.20 | [link](examples/clj-kondo.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [com.fluree/crypto](https://github.com/fluree/pod-fluree-crypto) | A Clojure(Script) crypto library for the Fluree graph database | 0.1.2 | [link](examples/fluree-crypto.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [com.github.clojure-lsp/clojure-lsp](https://github.com/clojure-lsp/clojure-lsp) |  | 2024.04.22-11.50.26 |  | null |\n| [com.github.jackdbd/pod.jackdbd.jsoup](https://github.com/jackdbd/pod-jackdbd-jsoup) | Babashka pod for parsing HTML with jsoup. | 0.4.0 | [link](examples/jsoup.bb) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [epiccastle/bbssh](https://github.com/epiccastle/bbssh) | SSH remote execution and file copy | 0.6.0 | [link](examples/bbssh.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [epiccastle/spire](https://github.com/epiccastle/spire) | Pragmatic idempotent machine provisioning over SSH (mac and linux only) | 0.1.2 | [link](examples/spire.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [huahaiy/datalevin](https://github.com/juji-io/datalevin) | Datalevin Database | 0.9.20 | [link](examples/datalevin.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [justone/brisk](https://github.com/justone/brisk) | Freeze and thaw with Nippy at the command line | 0.3.0 | [link](examples/brisk.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [justone/tabl](https://github.com/justone/tabl) | Make tables from data in your terminal | 0.3.0 | [link](examples/tabl.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [lispyclouds/docker](https://github.com/lispyclouds/pod-lispyclouds-docker) | A babashka pod for interacting with docker via clj-docker-client | 0.1.1 | [link](examples/docker.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/aws](https://github.com/babashka/pod-babashka-aws) | AWS client based on [aws-api](https://github.com/cognitect-labs/aws-api) | 0.1.2 | [link](examples/aws.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/buddy](https://github.com/babashka/pod-babashka-buddy) | Cryptographic API provided by buddy | 0.3.4 | [link](examples/buddy.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/duckdb](https://github.com/babashka/babashka-sql-pods) | Duckdb access via next.jdbc | 0.1.4 | [link](examples/duckdb.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/etaoin](https://github.com/babashka/pod-babashka-etaoin) | Etaoin, a pure Clojure webdriver protocol implementation | 0.1.0 | [link](examples/etaoin.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/filewatcher](https://github.com/babashka/pod-babashka-filewatcher) | Filewatcher based on Rust notify | 0.0.1 | [link](examples/filewatcher.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/d/d5/Rust_programming_language_black_logo.svg\" alt=\"rust\" width=\"24\" height=\"24\"\u003e](https://www.rust-lang.org/) |\n| [org.babashka/fswatcher](https://github.com/babashka/pod-babashka-fswatcher) | Filewatcher based on Go fsnotify | 0.0.5 | [link](examples/fswatcher.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [org.babashka/go-sqlite3](https://github.com/babashka/pod-babashka-go-sqlite3) | Interact with sqlite3 | 0.2.7 | [link](examples/go_sqlite3.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [org.babashka/hsqldb](https://github.com/babashka/babashka-sql-pods) | HSQLDB access via next.jdbc | 0.1.4 | [link](examples/hsqldb.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/instaparse](https://github.com/babashka/pod-babashka-instaparse) | Instaparse pod | 0.0.4 | [link](examples/instaparse.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/lanterna](https://github.com/babashka/pod-babashka-lanterna) | A Clojurey wrapper around the Lanterna terminal output library. | 0.0.1 | [link](examples/lanterna.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/mssql](https://github.com/babashka/babashka-sql-pods) | MSSQL access via next.jdbc | 0.1.4 | [link](examples/hsqldb.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/mysql](https://github.com/babashka/babashka-sql-pods) | MySQL access via next.jdbc | 0.1.4 | [link](examples/mysql.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/oracle](https://github.com/babashka/babashka-sql-pods) | Oracle access via next.jdbc | 0.1.0 |  | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/parcera](https://github.com/babashka/pod-babashka-parcera) | Grammar-based Clojure(script) parser\t | 0.0.1 | [link](examples/parcera.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/postgresql](https://github.com/babashka/babashka-sql-pods) | Postgresql access via next.jdbc | 0.1.4 | [link](examples/postgresql.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [org.babashka/tools-deps-native](https://github.com/babashka/tools-deps-native) | Tools deps alpha as a pod\t | 0.1.7 | [link](examples/tools-deps-native.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [retrogradeorbit/bootleg](https://github.com/retrogradeorbit/bootleg) | Template processing command line tool to help build static websites. Inbuilt support for html, hiccup, hickory, selmer, mustache, markdown, enlive, json, yaml and edn. | 0.1.9 | [link](examples/bootleg.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5d/Clojure_logo.svg\" alt=\"clojure\" width=\"24\" height=\"24\"\u003e](https://clojure.org/) |\n| [rorokimdim/stash](https://github.com/rorokimdim/stash) | Encrypted text storage | 0.3.4 | [link](examples/stash.clj) | [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/1/1c/Haskell-Logo.svg\" alt=\"haskell\" width=\"24\" height=\"24\"\u003e](https://haskell.org/) |\n| [tommy-mor/go-valve-query](https://github.com/tommy-mor/go-valve-query) | query/rcon valve source engine servers | 0.1.1 |  | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [tzzh/aws](https://github.com/tzzh/pod-tzzh-aws) | Interact with AWS | 0.0.3 | [link](examples/tzzh_aws.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n| [tzzh/mail](https://github.com/tzzh/pod-tzzh-mail) | Send emails | 0.0.3 | [link](examples/tzzh_mail.clj) | [\u003cimg src=\"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg\" alt=\"golang\" width=\"24\" height=\"24\"\u003e](https://golang.org/) |\n\n## Registering a pod\n\nTo register a pod, create a nested directory in `manifests` with the following structure:\n\n```\n\u003corg\u003e/\u003cpod-name\u003e/\u003cversion\u003e\n```\n\nand add a `manifest.edn` file like the following example:\n\n```clojure\n{:pod/name tzzh/mail\n :pod/description \"Send emails\"\n :pod/version \"0.0.2\"\n :pod/license \"\"\n :pod/example \"https://raw.githubusercontent.com/babashka/pod-registry/master/examples/tzzh_mail.clj\"\n :pod/language \"go\"\n :pod/artifacts\n [{:os/name \"Linux.*\"\n   :os/arch \"amd64\"\n   :artifact/url \"https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Linux_x86_64.zip\"\n   :artifact/executable \"pod-tzzh-mail\"}\n  {:os/name \"Mac.*\"\n   :os/arch \"x86_64\"\n   :artifact/url \"https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Darwin_x86_64.zip\"\n   :artifact/executable \"pod-tzzh-mail\"}\n  {:os/name \"Windows.*\"\n   :os/arch \"amd64\"\n   :artifact/url \"https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Windows_x86_64.zip\"\n   :artifact/executable \"pod-tzzh-mail.exe\"}]}\n```\n\nThe required fields are `:pod/name`, `:pod/version` and `:pod/artifacts`. For the sake of programmatical integrity you can populate `:pod/description`, `:pod/example` (with a link) and `:pod/language` fields as well.\n\nYou can then load the pod in your babashka script as follows:\n\n```clojure\n(require '[babashka.pods :as pods])\n(pods/load-pod 'tzzh/mail \"0.0.2\")\n\n(require '[pod.tzzh.mail :as m])\n(m/send-mail ...)\n```\n\nThe `:pod/artifacts` vector will be matched in order on operating system and\narchitecture. For the first match, the `:artifact/url`, a zip file, will be\ndownloaded and extracted. After extraction there should be a file with the same\nname as `:artifact/executable` which will be made executable and invoked as the\npod.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabashka%2Fpod-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabashka%2Fpod-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabashka%2Fpod-registry/lists"}