babashka
clojure-lsp
Our great sponsors
babashka | clojure-lsp | |
---|---|---|
2 | 5 | |
1,711 | 1,119 | |
- | 1.4% | |
9.7 | 9.3 | |
over 3 years ago | 6 days ago | |
Clojure | Clojure | |
Eclipse Public License 1.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
babashka
-
Show HN: Bbb – an easy way to build and compile Clojure CLIs with GraalVM
I've been learning Clojure recently and loving it, but one thing I've found myself missing from my Golang days is how easy it is to build and deploy CLI tools in Golang.
With GraalVM it's finally possible to compile Clojure apps into static binaries that give your users a deploy and startup experience similar to Go's, but I found GraalVM very difficult to configure and use, and was often frustrated because not all JVM code is compatible with GraalVM. Worse still, because native-images take a while to build you often don't find out that your working JVM Clojure code won't work as a native-image until it's too late.
BabashkaBins/bbb is my attempt to fix this: it lets you easily run the same codebase under babashka or JVM Clojure, and will automate compiling your project to a static binary for you using GraalVM's native-image. It also takes care of collecting some tweaks that make it easy to use the cli-magic [2] library under babashka, which means you can easily make complex CLI tools with nested subcommands a la git or docker, with all the bells and whistles.
Since babashka is itself compiled under GraalVM, this arrangement provides a other few nice benefits: 1) babashka starts quickly, so you can test your CLI from an actual command line without waiting for the JVM to spin up each time. 2) babashka's codebase contains a treasure trove of GraalVM related tweaks and fixes that using bbb lets you take advantage of in your own CLIs for free, and 3) it functions as a quick sanity check since babashka itself is compiled under GraalVM. If you find yourself doing something that's not GraalVM compatible at least you'll know early!
[1]: https://github.com/borkdude/babashka
-
A Practical Introduction to jq (and more)
```
[1]: https://github.com/borkdude/babashka
clojure-lsp
- What IDE offers highlighting syntax errors?
-
How do you overcome the lack of completion in ClojureScript
https://clojure-lsp.io/ can analyze cljs code and provide autocompletion without a live REPL. https://cursive-ide.com/ Is another option if you prefer a full IDE experience. Personally, dabbrev-expand (or hippie-expand) in Emacs covers 80% of my needs for code completion :)
-
Clojure LSP Missing Functionality (Rename, Format, etc)
Hmmm looks like this was fixed in the current release: https://github.com/clojure-lsp/clojure-lsp/issues/642 but I'm no clojure expert to advise what to do :/
-
London Clojurians Talk: Turning your editor into a Clojure IDE with clojure-lsp (by Eric Dallo)
Eric Dallo (https://twitter.com/ericdallo) will be presenting clojure-lsp (https://github.com/clojure-lsp/clojure-lsp). Learn how Clojure development can be enhanced with LSP, adding autocomplete, diagnostics, refactor, cleaning your code and much more!
What are some alternatives?
PowerShell - PowerShell for every system!
babashka - Native, fast starting Clojure interpreter for scripting
cheshire - Clojure JSON and JSON SMILE (binary json format) encoding/decoding
sci - Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
jc - CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.
dv.fulcro-template - Fulcro full stack application template using clj-new
specter-cli - A native Specter CLI, compiled with GraalVM native-image and executed by SCI.
closp - Clojure template for web development (with SPA support)
jq-web - jq in the browser with emscripten.
secrets.clj - A library designed to generate cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.
tools-deps-native - Run tools.deps as a native binary
dad - Small configuration management tool for Clojure