{"id":13393107,"url":"https://github.com/babashka/babashka","last_synced_at":"2025-12-12T01:15:18.659Z","repository":{"id":37446604,"uuid":"201467090","full_name":"babashka/babashka","owner":"babashka","description":"Native, fast starting Clojure interpreter for scripting","archived":false,"fork":false,"pushed_at":"2025-05-04T08:27:04.000Z","size":11149,"stargazers_count":4226,"open_issues_count":30,"forks_count":260,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-05-07T06:41:50.072Z","etag":null,"topics":["babashka","bash","clojure","graalvm","scripting","shell-scripting"],"latest_commit_sha":null,"homepage":"https://babashka.org","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/babashka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":"borkdude","open_collective":"babashka","ko_fi":"borkdude","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-08-09T12:53:24.000Z","updated_at":"2025-05-06T17:37:53.000Z","dependencies_parsed_at":"2023-12-15T10:01:57.605Z","dependency_job_id":"c45f8cd0-e876-4749-b713-c254915321c4","html_url":"https://github.com/babashka/babashka","commit_stats":{"total_commits":3978,"total_committers":127,"mean_commits":"31.322834645669293","dds":0.0804424333836099,"last_synced_commit":"b59bfcb7e64dd8dad142379b0f8cfddb04c84e90"},"previous_names":["borkdude/babashka"],"tags_count":200,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fbabashka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fbabashka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fbabashka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babashka%2Fbabashka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babashka","download_url":"https://codeload.github.com/babashka/babashka/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252831271,"owners_count":21810784,"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":["babashka","bash","clojure","graalvm","scripting","shell-scripting"],"created_at":"2024-07-30T17:00:43.307Z","updated_at":"2025-12-12T01:15:18.652Z","avatar_url":"https://github.com/babashka.png","language":"Clojure","readme":"[\u003cimg src=\"logo/babashka.svg\" alt=\"Babashka\" width=\"425px\"\u003e](https://babashka.org)\n\n[![CircleCI](https://circleci.com/gh/babashka/babashka/tree/master.svg?style=shield)](https://circleci.com/gh/babashka/babashka/tree/master)\n[![project chat](https://img.shields.io/badge/slack-join_chat-brightgreen.svg)](https://app.slack.com/client/T03RZGPFR/CLX41ASCS)\n[![Financial Contributors on Open Collective](https://opencollective.com/babashka/all/badge.svg?label=financial+contributors)](https://opencollective.com/babashka) [![Clojars Project](https://img.shields.io/clojars/v/babashka/babashka.svg)](https://clojars.org/babashka/babashka)\n[![twitter](https://img.shields.io/badge/twitter-%23babashka-blue)](https://twitter.com/search?q=%23babashka\u0026src=typed_query\u0026f=live)\n[![docs](https://img.shields.io/badge/website-docs-blue)](https://book.babashka.org)\n\n\u003cblockquote class=\"twitter-tweet\" data-lang=\"en\"\u003e\n    \u003cp lang=\"en\" dir=\"ltr\"\u003eLife's too short to remember how to write Bash code. I feel liberated.\u003c/p\u003e\n    \u0026mdash;\n    \u003ca href=\"https://github.com/laheadle\"\u003e@laheadle\u003c/a\u003e on Clojurians Slack\n\u003c/blockquote\u003e\n\n## Introduction\n\nBabashka is a native Clojure interpreter for scripting with fast startup. Its\nmain goal is to leverage Clojure in places where you would be using bash\notherwise.\n\nAs one user described it:\n\n\u003e I’m quite at home in Bash most of the time, but there’s a substantial grey area of things that are too complicated to be simple in bash, but too simple to be worth writing a clj/s script for. Babashka really seems to hit the sweet spot for those cases.\n\n### Goals\n\n* **Fast starting** Clojure scripting alternative for JVM Clojure\n* **Easy installation:** grab the self-contained binary and run. No JVM needed.\n* **Familiar:** targeted at JVM Clojure users\n* **Cross-platform:** supports linux, macOS and Windows\n* **Interop** with commonly used classes (`System`, `File`, `java.time.*`, `java.nio.*`)\n* **Multi-threading** support (`pmap`, `future`)\n* **Batteries included** (tools.cli, cheshire, ...)\n\n### Non-goals\n\n* Provide a mixed Clojure/Bash DSL (see portability).\n* Replace existing shells. Babashka is a tool you can use inside existing shells like bash and it is designed to play well with them. It does not aim to replace them.\n\n## Quickstart\n\nFor installation options check [Installation](https://github.com/babashka/babashka#installation).\nFor quick installation using `bash`, use:\n\n``` shell\nbash \u003c \u003c(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)\n```\n\nor grab a binary from [Github\nreleases](https://github.com/babashka/babashka/releases) yourself and place it\nanywhere on the path.\n\nThen you're ready to go:\n\n``` shellsession\ntime bb -e '(-\u003e\u003e (fs/list-dir \".\") (filter fs/directory?) (map fs/normalize) (map str) (take 3))'\n```\n\n``` clojure\n(\".build\" \"feature-lanterna\" \".repl\")\nbb -e    0,01s  user 0,01s system 70% cpu 0,017 total\n```\n\n## Support :heart:\n\nYou can support this project via [Github\nSponsors](https://github.com/sponsors/borkdude),\n[OpenCollective](https://opencollective.com/babashka),\n[Ko-fi](https://ko-fi.com/borkdude) or indirectly via [Clojurists\nTogether](https://www.clojuriststogether.org/).\n\n\u003cdetails\u003e\n\n\u003csummary\u003eTop sponsors\u003c/summary\u003e\n\n- [Clojurists Together](https://clojuriststogether.org/)\n- [Roam Research](https://roamresearch.com/)\n- [Nextjournal](https://nextjournal.com/)\n- [Toyokumo](https://toyokumo.co.jp/)\n- [Cognitect](https://www.cognitect.com/)\n- [Kepler16](https://kepler16.com/)\n- [Adgoji](https://www.adgoji.com/)\n\n\u003c/details\u003e\n\n## Babashka users\n\nSee [companies](doc/companies.md) for a list of companies using babashka.\n\nAre you using babashka in your company or personal projects? Let us know\n[here](https://github.com/babashka/babashka/issues/254).\n\n## Setting expectations\n\nBabashka uses [SCI](https://github.com/borkdude/sci) for interpreting\nClojure. SCI implements a substantial subset of Clojure. Interpreting code is in\ngeneral not as performant as executing compiled code. If your script takes more\nthan a few seconds to run or has lots of loops, Clojure on the JVM may be a\nbetter fit as the performance on JVM is going to outweigh its startup time\npenalty. Read more about the differences with Clojure\n[here](#differences-with-clojure).\n\n## Status\n\nFunctionality regarding `clojure.core` and `java.lang` can be considered stable\nand is unlikely to change. Changes may happen in other parts of babashka,\nalthough we will try our best to prevent them. Always check the release notes or\n[CHANGELOG.md](CHANGELOG.md) before upgrading.\n\n## Talk\n\nTo get an overview of babashka, you can watch this talk ([slides](https://speakerdeck.com/borkdude/babashka-and-the-small-clojure-interpreter-at-clojured-2020)):\n\n[![Babashka at ClojureD 2020](https://img.youtube.com/vi/Nw8aN-nrdEk/0.jpg)](https://www.youtube.com/watch?v=Nw8aN-nrdEk)\n\n## Babashka book\n\nThe [babashka book](https://book.babashka.org) contains detailed information\nabout how to get the most out of babashka scripting.\n\nThere is also the book [Babashka Babooka](https://www.braveclojure.com/quests/babooka/),\nby Daniel Higginbotham, who has also helped a lot of people learn Clojure with\n[Clojure for the Brave and\nTrue](https://www.braveclojure.com/clojure-for-the-brave-and-true/).\n\n## Try online\n\nYou can try babashka online with Nextjournal's babashka [notebook\nenvironment](http://nextjournal.com/try/babashka?cm6=1).\n\n## Installation\n\n### Brew\n\nLinux and macOS binaries are provided via brew.\n\nInstall:\n\n    brew install borkdude/brew/babashka\n\nUpgrade:\n\n    brew upgrade babashka\n\n### Nix\n\nLinux and macOS (including ARM Macs) binaries are provided via nix (see the installation instructions for nix [here](https://nixos.org/download.html)).\n\nInstall:\n\n    # Adding `nixpkgs-unstable` channel for more up-to-date binaries, skip this if you already have `nixpkgs-unstable` in your channel list\n    nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable\n    nix-channel --update\n    nix-env -iA nixpkgs-unstable.babashka\n\nUpgrade:\n\n    nix-channel --update\n    nix-env -iA nixpkgs-unstable.babashka\n\nYou can find more documentation on how to use babashka with nix [here](./doc/nix.md).\n\n### Alpine\n\nOn Alpine it's recommended to download the binary manually from [Github\nReleases](https://github.com/babashka/babashka/releases) and use the static\nlinux binary.\n\n### Arch (Linux)\n\n`babashka` is [available](https://aur.archlinux.org/packages/babashka-bin/) in the [Arch User Repository](https://aur.archlinux.org). It can be installed using your favorite [AUR](https://aur.archlinux.org) helper such as\n[yay](https://github.com/Jguer/yay), [yaourt](https://github.com/archlinuxfr/yaourt), [apacman](https://github.com/oshazard/apacman) and [pacaur](https://github.com/rmarquis/pacaur). Here is an example using `yay`:\n\n    yay -S babashka-bin\n\n### asdf\n\n[asdf](https://github.com/asdf-vm/asdf) is an extendable version manager for linux and macOS. Note that asdf will add significant startup time to any babashka script, consider using [mise](#mise) instead.\n\nBabashka can be installed using a plugin as follows:\n\n    asdf plugin add babashka https://github.com/pitch-io/asdf-babashka\n    asdf install babashka latest\n\n### mise\n\n[mise](https://mise.jdx.dev/) is a development environment setup tool for linux and macOS.\n\nInstall:\n\n    mise use --global babashka@latest\n\nUpgrade:\n\n    mise upgrade babashka\n\n### Windows\n\n#### Scoop\n\nOn Windows you can install using [scoop](https://scoop.sh/) and the\n[scoop-clojure](https://github.com/littleli/scoop-clojure) bucket.\n\nOr just follow these concrete steps:\n``` powershell\n# Note: if you get an error you might need to change the execution policy (i.e. enable Powershell) with\n# Set-ExecutionPolicy RemoteSigned -scope CurrentUser\nInvoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')\n\nscoop bucket add scoop-clojure https://github.com/littleli/scoop-clojure\nscoop bucket add extras\nscoop install babashka\n```\n\n#### Manual\n\nIf scoop does not work for you, then you can also just download the `bb.exe`\nbinary from [Github releases](https://github.com/babashka/babashka/releases) and\nplace it on your path manually.\n\n#### WSL1\n\u003e Note: WSL1 users might experience a BSOD, please use the --static install option when installing\n``` shell\n$ curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install\n$ chmod +x install\n$ ./install --static\n```\n\n### Installer script\n\nInstall via the installer script for linux and macOS:\n\n``` shell\n$ curl -sLO https://raw.githubusercontent.com/babashka/babashka/master/install\n# or\n$ wget -qO install https://raw.githubusercontent.com/babashka/babashka/master/install\n$ chmod +x install\n$ ./install\n```\n\nBy default this will install into `/usr/local/bin` (you may need `sudo` for\nthis). To change this, provide the directory name:\n\n``` shell\n$ ./install --dir .\n```\n\nTo install a specific version, the script also supports `--version`:\n\n``` shell\n$ ./install --dir . --version 0.4.1\n```\n\nTo force the download of the zip archive to a different directory than `/tmp`\nuse the `--download-dir` argument:\n\n``` shell\n$ ./install --dir . --version 0.4.1 --download-dir .\n```\n\nOn Linux, if you want to install the static binary version:\n\n``` shell\n$ ./install --dir . --version 0.4.1 --download-dir . --static\n```\n\nIn case you want to check the download, you can use the `--checksum` option.\nThis maybe useful for unattended installations:\n\n``` shell\n$ sha256sum babashka-0.4.1-linux-amd64-static.tar.gz\nab70fb39fdbb5206c0a2faab178ffb54dd9597991a4bc13c65df2564e8f174f6  babashka-0.4.1-linux-amd64-static.tar.g\n$ ./install --dir /tmp --checksum ab70fb39fdbb5206c0a2faab178ffb54dd9597991a4bc13c65df2564e8f174f6 --static --version 0.4.1\n```\n\nNote that the `--checksum` option only works when `--version` option is also\nprovided. This is to avoid breakage when a new version of Babashka is released.\n\n### Github releases\n\nYou may also download a binary from\n[Github](https://github.com/babashka/babashka/releases). For linux there is a\nstatic binary available which can be used on Alpine.\n\n### CI\n\n- On Github Actions it's recommended to use [setup-clojure](https://github.com/DeLaGuardo/setup-clojure) with `bb: latest`.\n- You can use the [installer script](https://github.com/babashka/babashka#installer-script) on any non-Windows CI system. CircleCI requires `sudo`.\n- On Appveyor + Windows you can use a bit of [Powershell](https://github.com/clj-kondo/clj-kondo/blob/39b5cb2b0d3d004c005e8975b6fafe0e314eec68/appveyor.yml#L60-L64).\n\n## Docker\n\nCheck out the image on [Docker hub](https://hub.docker.com/r/babashka/babashka/).\n\n## [News](doc/news.md)\n\nCheck out the [news](doc/news.md) page to keep track of babashka-related news items.\n\n## [Built-in namespaces](https://book.babashka.org/#built-in-namespaces)\n\nGo [here](https://book.babashka.org/#built-in-namespaces) to see the full list of built-in namespaces.\n\n## [Compatible Projects](doc/projects.md)\n\nA list of projects (scripts, libraries, pods and tools) known to work with babashka.\n\n## Badges\n\n[![bb compatible](/logo/badge.svg)](https://book.babashka.org#badges)\nThe babashka compatible badge indicates that a library can be used as babashka dependency.\nIf this is the case for your library, we encourage you to proudly display this badge.\n\n[![bb built-in](/logo/built-in-badge.svg)](https://book.babashka.org#badges)\nThe babashka built-in badge means that a library has been built directly into babashka and requires no extra dependencies to use it.\nIf this rare honor belongs to your library, you should display this badge.\n\nSee [the babashka book for details](https://book.babashka.org#badges).\n\n## Swag\n\n- [t-shirt](https://www.etsy.com/listing/1241766068/babashka-clj-kondo-nbb-shirt)\n\n## [Pods](https://github.com/babashka/babashka.pods)\n\nPods are programs that can be used as a Clojure library by\nbabashka. Documentation is available in the [pod library\nrepo](https://github.com/babashka/pods).\n\nA list of available pods can be found in the [pod registry](https://github.com/babashka/pod-registry).\n\n## Differences with Clojure\n\nBabashka is implemented using the [Small Clojure\nInterpreter](https://github.com/borkdude/sci). This means that a snippet or\nscript is not compiled to JVM bytecode, but executed form by form by a runtime\nwhich implements a substantial subset of Clojure. Babashka is compiled to\na native binary using [GraalVM](https://github.com/oracle/graal). It comes with\na selection of built-in namespaces and functions from Clojure and other useful\nlibraries. The data types (numbers, strings, persistent collections) are the\nsame. Multi-threading is supported (`pmap`, `future`).\n\nDifferences with Clojure:\n\n- A pre-selected set of Java classes are supported. You cannot add Java classes\n  at runtime.\n\n- Interpretation comes with overhead. Therefore loops are slower than in Clojure\n  on the JVM. In general interpretation yields slower programs than compiled\n  programs.\n\n- No `deftype`, `definterface` and unboxed math.\n\n- `defprotocol` and `defrecord` are implemented using multimethods and regular\n  maps. Ostensibly they work the same, but under the hood there are no Java\n  classes that correspond to them.\n\n- Currently `reify` works only for one class at a time\n\n- The `clojure.core.async/go` macro is not (yet) supported. For compatibility it\n  currently maps to `clojure.core.async/thread`. More info\n  [here](https://book.babashka.org/#core_async).\n\n## Package babashka script as a AWS Lambda\n\nAWS Lambda runtime doesn't support signals, therefore babashka has to disable\nhandling of SIGINT and SIGPIPE. This can be done by setting\n`BABASHKA_DISABLE_SIGNAL_HANDLERS` to `true`.\n\n## Articles, podcasts and videos\n\n- [Blambda analyses sites](https://jmglov.net/blog/2023-01-04-blambda-analyses-sites.html) by Josh Glover\n- [The wizard of HOP - How we built the web based HOP CLI Settings Editor using Babashka and Scittle](https://www.gethop.dev/post/the-wizard-of-hop-how-we-built-the-web-based-hop-cli-settings-editor-using-babashka-and-scittle) by Bingen Galartza\n- [Simple TUIs with Babashka and Gum](https://rattlin.blog/bbgum.html) by Rattlin.blog\n- [Babashka And Dialog Part Ii: Announcing The Bb-Dialog Library](https://www.pixelated-noise.com/blog/2023/01/20/bb-dialog-announcement/index.html) by A.C. Danvers\n- [Babashka Babooka](https://www.braveclojure.com/quests/babooka/): Write Command-Line Clojure by Daniel Higginbotham\n- [Re-Writing a GlobalProtect OpenConnect VPN Connect script in Babashka](https://tech.toryanderson.com/2023/01/14/re-writing-a-globalprotect-openconnect-vpn-connect-script-in-babashka/) by Tory Anderson\n- [Babashka: How GraalVM Helped Create a Fast-Starting Scripting Environment for Clojure](https://medium.com/graalvm/babashka-how-graalvm-helped-create-a-fast-starting-scripting-environment-for-clojure-b0fcc38b0746) by Michiel Borkent (Japanese version [here]((https://logico-jp.io/2023/01/07/babashka-how-graalvm-helped-create-a-fast-starting-scripting-environment-for-clojure/)))\n- [Adding Prompts To Your Babashka Scripts With Dialog](https://www.pixelated-noise.com/blog/2022/12/09/dialog-and-babashka/index.html) by A.C. Danvers\n- [Scraping an HTML dictionary with Babashka and Bootleg](https://blog.exupero.org/scraping-an-html-dictionary-with-babashka-and-bootleg/) by exupero\n- [Using Babashka to Get Electricity Prices](https://www.karimarttila.fi/clojure/2022/12/04/using-babashka-to-get-electricity-prices.html) by Kari Marttila\n- [How to Do Things With Babashka](https://presumably.de/how-to-do-things-with-babashka.html) by Paulus Esterhazy (2022-12)\n- [Using nREPL as a system interface](https://yogthos.net/posts/2022-11-26-nREPL-system-interaction.html) by Dmitri Sotnikov\n- [Manage git hooks with babashka tasks](https://blaster.ai/blog/posts/manage-git-hooks-w-babashka.html) by Mykhaylo Bilyanskyy\n- [Messing around with babashka](https://ian-muge.medium.com/messing-around-with-babashka-f181a9003faa) by Ian Muge\n- Introducing [bbin](https://radsmith.com/bbin) by Radford Smith (2022-09)\n- [Deleting AWS Glacier vaults with babashka](https://javahippie.net/clojure/2022/07/23/deleting-aws-glacier-vaults-with-babashka.html) by Tim Zöller\n- [Recursive document transformations with Pandoc and Clojure](https://play.teod.eu/document-transform-pandoc-clojure/) by Teodor Heggelund\n- [Blambda!](https://jmglov.net/blog/2022-07-03-blambda.html) by Josh Glover\n- [Babashka CLI](https://blog.michielborkent.nl/babashka-cli.html): turn Clojure functions into CLIs!\n- [Breakneck Babashka on K8s](https://www.linkedin.com/pulse/breakneck-babashka-k8s-heow-goodman/) by Heow Goodman\n- [Recursive document transformations with Pandoc and Clojure](https://play.teod.eu/document-transform-pandoc-clojure/)\n- [Detecting inconsistent aliases in a clojure codebase](https://www.youtube.com/watch?v=bf8KLKkCH2g) by Oxalorg\n- [I, too, Wrote Myself a Static Site Generator](https://dawranliou.com/blog/i-too-wrote-myself-a-static-site-generator/) by Daw-Ran Liou\n- [Babashka and Clojure](https://youtu.be/ZvOs5Ele6VE) by Rahul Dé at North Virginia Linux Users Group\n- [Create a password manager with Clojure using Babashka, sqlite, honeysql and stash](https://youtu.be/jm0RXmyjRJ8) by Daniel Amber\n- [Writing Clojure-living-cookbooks](https://www.loop-code-recur.io/live-clojure-cookbooks) by Cyprien Pannier\n- [Using babashka with PHP](https://blog.michielborkent.nl/using-babashka-with-php.html) by Michiel Borkent\n- [Moldable Emacs: a Clojure Playground with Babashka](https://ag91.github.io/blog/2021/11/05/moldable-emacs-a-clojure-playground-with-babashka/) by Andrea\n- [Finding my inner Wes Anderson with #Babashka](https://javahippie.net/clojure/2021/10/18/finding-my-inner-wes-anderson.html) by Tim Zöller\n- [Awesome Babashka: Parse \u0026 produce HTML and SQLite](https://blog.jakubholy.net/2021/awesome-babashka-dash/) by Jakub Holý\n- [Babashka tasks](https://youtu.be/u5ECoR7KT1Y), talk by Michiel Borkent\n- [Rewriting a clojure file with rewrite-clj and babashka](https://youtu.be/b7NPKsm8gkc), video by Oxalorg\n- [Integrating Babashka into Bazel](https://timjaeger.io/20210627-integrating-babashka-with-bazel.html) by Tim Jäger\n- [Talk](https://youtu.be/Yjeh57eE9rg): Babashka: a native Clojure interpreter for scripting — The 2021 Graal Workshop at CGO\n- [Blog](https://savo.rocks/posts/playing-new-music-on-old-car-stereo-with-clojure-and-babashka/): Playing New Music On Old Car Stereo With Clojure And Babashka\n- [Homoiconicity and feature flags](https://martinklepsch.org/posts/homoiconicity-and-feature-flags.html) by Martin Klepsch\n- [Clojure like its PHP](https://eccentric-j.com/blog/clojure-like-its-php.html) by Jay Zawrotny (eccentric-j)\n- [Deploy babashka script to AWS Lambda](https://www.jocas.lt/blog/post/babashka-aws-lambda/) by Dainius Jocas.\n- [Automating Video Edits with Clojure and ffmpeg](https://youtu.be/Tmgy57R9HZM) by Adam James.\n- [Exporter for passwordstore.org](https://www.ieugen.ro/posts/2020/2020-12-26-export-passwords-with-babashka/) by Eugen Stan\n- [Babashka and sci internals](https://youtu.be/pgNp4Lk3gf0), a talk by Michiel Borkent at the [London Clojurians Meetup](https://www.meetup.com/London-Clojurians).\n- [Writing Clojure on the Command Line with Babashka](https://youtu.be/RogyxI-GaGQ), a talk by Nate Jones.\n- [Using Clojure in Command Line with Babashka](http://www.karimarttila.fi/clojure/2020/09/01/using-clojure-in-command-line-with-babashka.html), a blog article by Kari Marttila.\n- [Babashka and GraalVM; taking Clojure to new places](https://youtu.be/3EUMA6bd-xQ), a talk by Michiel Borkent at [Clojure/NYC](https://www.meetup.com/Clojure-NYC/).\n- [Import a CSV into Kafka, using Babashka](https://blog.davemartin.me/posts/import-a-csv-into-kafka-using-babashka/) by Dave Martin\n- [Learning about babashka](https://amontalenti.com/2020/07/11/babashka), a blog article by Andrew Montalenti\n- [Babashka Pods](https://www.youtube.com/watch?v=3Q4GUiUIrzg\u0026feature=emb_logo) presentation by Michiel Borkent at the [Dutch Clojure Meetup](http://meetup.com/The-Dutch-Clojure-Meetup).\n- [AWS Logs using Babashka](https://tech.toyokumo.co.jp/entry/aws_logs_babashka), a blog published by [Toyokumo](https://toyokumo.co.jp/).\n- [The REPL podcast](https://www.therepl.net/episodes/36/) Michiel Borkent talks about [clj-kondo](https://github.com/borkdude/clj-kondo), [Jet](https://github.com/borkdude/jet), Babashka, and [GraalVM](https://github.com/oracle/graal) with Daniel Compton.\n- [Implementing an nREPL server for babashka](https://youtu.be/0YmZYnwyHHc): impromptu presentation by Michiel Borkent at the online [Dutch Clojure Meetup](http://meetup.com/The-Dutch-Clojure-Meetup)\n- [ClojureScript podcast](https://soundcloud.com/user-959992602/s3-e5-babashka-with-michiel-borkent) with Jacek Schae interviewing Michiel Borkent\n- [Babashka talk at ClojureD](https://www.youtube.com/watch?v=Nw8aN-nrdEk) ([slides](https://speakerdeck.com/babashka/babashka-and-the-small-clojure-interpreter-at-clojured-2020)) by Michiel Borkent\n- [Babashka: a quick example](https://juxt.pro/blog/posts/babashka.html) by Malcolm Sparks\n- [Clojure Start Time in 2019](https://stuartsierra.com/2019/12/21/clojure-start-time-in-2019) by Stuart Sierra\n- [Advent of Random\n  Hacks](https://lambdaisland.com/blog/2019-12-19-advent-of-parens-19-advent-of-random-hacks)\n  by Arne Brasseur\n- [Clojure in the Shell](https://lambdaisland.com/blog/2019-12-05-advent-of-parens-5-clojure-in-the-shell) by Arne Brasseur\n- [Clojure Tool](https://purelyfunctional.tv/issues/purelyfunctional-tv-newsletter-351-clojure-tool-babashka/) by Eric Normand\n\n## [Building babashka](doc/build.md)\n\n## [Developing Babashka](doc/dev.md)\n\n## Including new libraries or classes\n\nBefore new libraries or classes go into the standardly distributed babashka\nbinary, these evaluation criteria are considered:\n\n- The library or class is useful for general purpose scripting.\n- Adding the library or class would make babashka more compatible with Clojure\n  libraries relevant to scripting.\n- The library cannot be interpreted by with babashka using `--classpath`.\n- The functionality can't be met by shelling out to another CLI or can't be\n  written as a small layer over an existing CLI (like `babashka.curl`) instead.\n- The library cannot be implemented as a\n  [pod](https://github.com/babashka/babashka.pods).\n\nIf not all of the criteria are met, but adding a feature is still useful to a\nparticular company or niche, adding it behind a feature flag is still a\npossibility. This is currently the case for `next.jdbc` and the `PostgresQL` and\n`HSQLDB` database drivers. Companies interested in these features can compile an\ninstance of babashka for their internal use. Companies are also free to make\nforks of babashka and include their own internal libraries. If their customized\nbabashka is interesting to share with the world, they are free to distribute it\nusing a different binary name (like `bb-sql`, `bb-docker`, `bb-yourcompany`,\netc.). See the [feature flag documentation](doc/build.md#feature-flags) and the\nimplementation of the existing feature flags ([example\ncommit](https://github.com/babashka/babashka/commit/02c7c51ad4b2b1ab9aa95c26a74448b138fe6659)).\n\n## Related projects\n\n- [planck](https://planck-repl.org/)\n- [joker](https://github.com/candid82/joker)\n- [closh](https://github.com/dundalek/closh)\n- [lumo](https://github.com/anmonteiro/lumo)\n\n## Contributors\n\nThanks to all the people that contributed to babashka:\n\n- [CircleCI](https://circleci.com/) for CI and additional support\n- [Nikita Prokopov](https://github.com/tonsky) for the logo\n- [Contributors](https://github.com/babashka/babashka/graphs/contributors) and\n  other users posting issues with bug reports and ideas\n\n## License\n\nCopyright © 2019-2020 Michiel Borkent\n\nDistributed under the EPL License. See LICENSE.\n\nThis project contains code from:\n- Clojure, which is licensed under the same EPL License.\n","funding_links":["https://github.com/sponsors/borkdude","https://opencollective.com/babashka","https://ko-fi.com/borkdude"],"categories":["Clojure","Lisp","其他","clojure","Clojure-likes"],"sub_categories":["Clojure","网络服务_其他","[Babashka](https://babashka.org/)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabashka%2Fbabashka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabashka%2Fbabashka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabashka%2Fbabashka/lists"}