I made a columnar analytics library in pure Clojure which is a port of the ideas in https://github.com/RayforceDB/rayforce, and it looks to be working well enough for a v0.1.0 release https://github.com/yogthos/flatiron
The main goal was to see if I'd be able to work with millions of rows fast, and turns out that you can get really good performance by keeping columns as plain long[]/`double[]` arrays and running aggregations as tight primitive loops. A group-by over a million rows comes back in just a few milliseconds. I did a bit of benchmarking running the same queries against the actual C binary, and the JVM version holds up within an order of magnitude.
The fun part is that your tables are also a graph database so ypu can point it at two columns and you get a CSR graph you can run BFS, Dijkstra, PageRank, or connected components on the data you're aggregating. There's also parallel group-by, sorting, window functions, pivots, CSV, and a binary store. And the only dependency is core.async.
Would love to hear what you all think, and bug reports and feature requests are very welcome.
https://github.com/babashka/cli: turn Clojure functions into CLIs!
v0.11.71 (2026-06-11)
• dispatchnow accepts a tree directly (as returned by`table->tree`). Seehttps://github.com/babashka/cli#tree-format
• Subcommand table order is now preserved in printed help and completions