{"repo":"yogthos/flatiron","free":true,"listed":false,"github":"https://github.com/yogthos/flatiron","clone":"git clone https://github.com/yogthos/flatiron.git","description":"A columnar database for analytics","language":"Clojure","stars":41,"topics":["clojure","database"],"license":"MIT","category":"databases-storage","readme_excerpt":"Flatiron Flatiron is a columnar analytics library for Clojure. It lets you run fast analytical queries on in-memory tables using a SQL-like DSL, and it handles graph algorithms on the same data. It's pure Clojure with no dependencies beyond core.async. Think of it as what you'd reach for instead of dragging in a full embedded database: load some data, run group-by aggregations, sort and filter, maybe run PageRank on a graph, all in-process with zero configuration. Why columnar Most Clojure programs represent tabular data as sequences of maps. That's fine for a few thousand rows, but it falls apart on larger datasets: every row is a heap-allocated map, every value is boxed, and every access goes through layers of indirection. Flatiron stores data as typed primitive arrays — one array per column. An integer column is a long[] , a float column is a double[] , and so on. Operations loop over these arrays directly using unchecked arithmetic, which the JVM can optimize into tight native code. Nulls are handled with sentinel values rather than boxed types, so there's no pointer chasing. The morsel engine processes data in 1024-row batches. This amortizes the cost of type dispatch: decide the operation once per batch, then run a tight loop over primitives. The result is performance closer to native C than to idiomatic Clojure. Installation Add the git dependency to your deps.edn : It depends on Clojure 1.12.0 and core.async 1.6.681, and requires JDK 18+ (the hash kernels use Math/uns","default_branch":null,"files":null,"tree":[],"storefront":"/r/yogthos","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yogthos/flatiron/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}