HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
technomancy
leiningen
Clojure2009–2022
technomancy / leiningen

leiningen

Moved to Codeberg; this is a temporary convenience mirror

52Distinct people
66Mentions
1Explicit recommenders
7.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Moved to Codeberg; this is a temporary convenience mirror

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Have you looked at Clojure? [Huge ramble to follow] Clojure is a particularly interesting functional language for a python programmer IMO. It shares a number of asthetic and…

brehaut used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 8:59:20 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year66 dated mentions

Observed mentions: 2009-11-14 15:59:06 UTC to 2022-07-30 21:00:34 UTC.

0510152009-01-01 00:00:00 UTC to 2010-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments20092010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 16 mentions; 2 submissions, 14 comments2011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 11 mentions; 0 submissions, 11 comments2012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 9 mentions; 3 submissions, 6 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20092009-01-01 00:00:00 UTC2010-01-01 00:00:00 UTC422
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC16214
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC11011
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC1028
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC936
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC514
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC312
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC211
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Hello Github User! The Leiningen project has moved the repository off Github. Please switch your git remotes over to https://codeberg.org/leiningen/leiningen Codeberg works just like Github, and you can even use your Github account to log in there, but it is operated like a user-owned cooperative with a democratic governance model instead of being an extractive arm of an unaccountable abusive megacorp. As usual, you can join the #leiningen IRC channel on Libera.Chat to discuss issues. Any use of this project's code by Github Copilot, past or present, is done without our permission. We do not consent to use of this project's data in training Copilot or any other language model. Packagers' note: if you are a downstream maintainer whose scripts download the Leiningen uberjar, we will continue to host those on Github in order to reduce the load on Codeberg. However, the uberjars are the only thing that will continue to be updated here. For your consideration I get it, Github is what everyone uses. But it's never been a good idea to allow one company to have a monopoly, and it's an even worse idea when that company has a history of abusing their monopoly. If you haven't taken a look at Github alternatives, now's a great time to evaluate a new home for your project! If you took a look at Gitlab a few years ago and were put off by its clunkiness and bugs, you should know that there are much better alternatives now. Codeberg is perhaps the most polished alternative, but Sourcehut is also quite nice for minimalists, and if you're adventurous you could try running your own Forgejo. Or maybe you don't even need a forge?
Read the full README on GitHub

What Hacker News says

11 sources
See: https://github.com/flatland/cake and https://github.com/technomancy/leiningen. No Maven involved. The only other comparable standard virtual machines are LLVM and CLR. Python doesn't really make sense in that it's a language, not a VM, and "Python" doesn't automatically connote a runtime like how Java is something of a synonym for the JVM. Incidentally, there is a Clojure port to the CLR. There are also always people working to port it to either LLVM or native code or whatnot and the mainstream community always looks at them oddly wondering what the heck they'd want to throw out Java compatibility for.
In Which one is more likely to succeed: clojure or arc?
As someone who's used Common Lisp, Scheme and Clojure; out of that bunch I would highly recommend Clojure for a beginner. Pros: 1. Easier to setup (with a single script from https://github.com/technomancy/leiningen) 2. Benefits of a lisp-1, with nicer syntax (fewer confusing parens) 3. Easier to get started with Emacs + swank-clojure + lein 4. Wealth of Java libraries 5. Functional Cons: 1. Can't think of any, unless you want Interface Builder and similar, or are desperate to program using call/cc or are in any of the above ways a non-beginner. drscheme is a nice counterpoint though, in that the learning enviroment could include a bit more hand-holding. IMHO for those coming from ruby/python etc. Clojure is a huge win. With square brackets for function-args, if you turn off or dim parens (emacs has several options such as rainbow-pare
Read the rest
ns) the source looks very much like python. And with M-q and friends and sexp editing, it behaves better.
In Initial Thoughts on Clojure
I can't comment on Scala, but I think Clojure is starting to get to the point where you can learn just Clojure and not have to think about Java until much later. At some point you'll assuredly interact with Java some, but there are a ton of libs out there now that are simple Clojure wrappers around most common things. Really, to get started with Clojure, all you need to do is install Leiningen (https://github.com/technomancy/leiningen) and type "lein repl" in a terminal window. No ant, wars, or jvm's to think about :)
In Tackling my first Clojure project, a Graphical HTTP Benchmarker in Clojure
Regarding Clojure on Emacs, just use the up-to-date stuff by technomancy. The following is based on my notes from a recent talk by Phil Hagelberg at a Boston Clojure Meetup. 1. Download lein from https://github.com/technomancy/leiningen/raw/stable/bin/lein 2. Launch lein (self-install) from the command line. 3. Run lein plugin install swank-clojure 1.3.0 on the command line. 4. When you first run swank, it may complain you do not have project.clj or something like that, because it expects to be launched form inside a project directory. You may create a dummy project directory (cd; lein new dummy; cd dummy). You need to run the above steps once, to install. Run the following at the beginning of a clojure session: 5. Run lein swank on the command line. 6. In emacs, run slime-connect (with the default parameters, most likely). In case I have
Read the rest
garbled the above, I am sure someone will correct me. Although I did it both on Windows and MacOs and it worked. (On Windows, I use bash shell form the MinGW project, but I see no reason for the standard Windows shell not to work.) Separately, you may want to install clojure-mode from the same repository. Happy hacking!
In Let's just use Emacs
> It seems to be a compile time only tool. Out-of-the-box it's a development tool, but it has plugins for certain types of deployment: https://github.com/technomancy/leiningen/wiki/Plugins You can create tar/jar/war files, deploy artifacts to remote mvn repositories, push to the Google App Engine or Elastic Beanstalk, etc. Deployment to generic unix servers is handled by Pallet, which integrates well with Leiningen: https://github.com/pallet/pallet-lein > Does it let different applications share libraries when possible? This goes strongly against the culture of the JVM for various reasons that are outside the scope of Clojure itself. > Can you push a security fix for a library to servers in the field without completely rebuilding and redeploying every application that uses the library. Sure, this is pretty easy to do with Swank, but the s
Read the rest
pecifics are going to vary widely based on the type of deployment.
In Why we are choosing Clojure as our main programming language
(defproject leiningen "1.5.0-RC1" :description "A build tool designed not to set your hair on fire." :url "https://github.com/technomancy/leiningen" :license {:name "Eclipse Public License"} :dependencies [[org.clojure/clojure "1.2.0"] [org.clojure/clojure-contrib "1.2.0"] [lancet "1.0.0"] [jline "0.9.94"] [robert/hooke "1.1.0"] [org.apache.maven/maven-ant-tasks "2.0.10" :exclusions [ant]]] :disable-implicit-clean true :eval-in-leiningen true)
In Why we are choosing Clojure as our main programming language
Just to collaborate a little bit on this point. With leiningen things are not too bad. A typical deployment instruction file (project.clj) looks like this and with "lein deps" you're all set up in a few seconds. (defproject leiningen "0.5.0-SNAPSHOT" :description "A build tool designed to not set your hair on fire." :url "http://github.com/technomancy/leiningen :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"]] :dev-dependencies [[swank-clojure "1.2.1"]])
In Why we are choosing Clojure as our main programming language

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.