https://github.com/invertedv/dass
dass assemble data, somewhat like a dataframe, but stores the data by row with each row being a map.
https://github.com/invertedv/dass
Last synced: 4 months ago
JSON representation
dass assemble data, somewhat like a dataframe, but stores the data by row with each row being a map.
- Host: GitHub
- URL: https://github.com/invertedv/dass
- Owner: invertedv
- License: apache-2.0
- Created: 2026-01-09T21:53:49.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-23T04:47:17.000Z (5 months ago)
- Last Synced: 2026-01-23T22:17:10.244Z (5 months ago)
- Language: Go
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://goreportcard.com/report/github.com/invertedv/dass)
[](https://pkg.go.dev/mod/github.com/invertedv/dass?tab=overview)
## Dass - Data Assembly
### Why
If you have a process that regularly pulls data, you may find the SQL is hard to create and maintain.
There are lots of fields calculated. There are multiple joins. It's a mess. Want to add something new?
Expect days of tweaking and testing.
The idea of Dass is to move data manipulation away from SQL and into Go where it can be more
easily created and maintained.
### Concept
Dass is a container for data.
It is similar to a dataframe construct in that it stores the data in memory.
Unlike most dataframes, the data is stored by row.
Each row is a map which simplifies the code.
The value of the map is type *any*. This does add overhead, but is very flexible.
Individual elements can be any type, including slices and maps.
Dass is lightweight in the sense that it supplies a small, core set of methods.
These methods mostly support data construction and access.
Key, though, is that it supports applying user functions to the rows via the Apply method.
You can move those calculations out of SQL and even joins through these functions.
Dass can read data from SQL, or CSV and XLSX files either on the web or locally.