ursus: A Dataframe Library for Go, and What It Is Honestly Worth

I have spent the last weeks building ursus — a dataframe library for Go modelled on Polars. Lazy execution with a query optimizer, Arrow memory layout, SIMD kernels, and streaming execution that spills to disk instead of falling over. df, err := ursus.ScanParquet("events.parquet"). Filter(ursus.Col("price").Gt(5)). GroupBy(ursus.Col("region")). Agg( ursus.Col("price").Sum().Alias("revenue"), ursus.Col("qty").Mean().Alias("avg_qty"), ). Sort(ursus.Desc(ursus.Col("revenue"))). Collect(ctx) The projection reaches the Parquet reader, the filter becomes a row-group predicate, and the group-by runs on every core. None of that shows up in the query. ...

September 20, 2026 · 6 min · Asadbek Kurbonov