HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
multiprocessio
datastation
TypeScript2021–2023
multiprocessio / datastation

datastation

App to easily query, script, and visualize data from every database, file, and API.

2Distinct people
44Mentions
0Explicit recommenders
3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

App to easily query, script, and visualize data from every database, file, and API.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

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, 12:54:37 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 month44 dated mentions

Observed mentions: 2021-06-12 11:55:28 UTC to 2023-03-08 21:42:53 UTC.

02462021-06-01 00:00:00 UTC to 2021-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJun 20212021-07-01 00:00:00 UTC to 2021-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-08-01 00:00:00 UTC to 2021-09-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-09-01 00:00:00 UTC to 2021-10-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-10-01 00:00:00 UTC to 2021-11-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-11-01 00:00:00 UTC to 2021-12-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2021-12-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2022-01-01 00:00:00 UTC to 2022-02-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2022-02-01 00:00:00 UTC to 2022-03-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-03-01 00:00:00 UTC to 2022-04-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2022-04-01 00:00:00 UTC to 2022-05-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 commentsApr 20222022-05-01 00:00:00 UTC to 2022-06-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2022-06-01 00:00:00 UTC to 2022-07-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-07-01 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-08-01 00:00:00 UTC to 2022-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-09-01 00:00:00 UTC to 2022-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-10-01 00:00:00 UTC to 2022-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-11-01 00:00:00 UTC to 2022-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-12-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2023-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-02-01 00:00:00 UTC to 2023-03-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-03-01 00:00:00 UTC to 2023-04-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 2023

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
Jun 20212021-06-01 00:00:00 UTC2021-07-01 00:00:00 UTC101
Jul 20212021-07-01 00:00:00 UTC2021-08-01 00:00:00 UTC000
Aug 20212021-08-01 00:00:00 UTC2021-09-01 00:00:00 UTC303
Sep 20212021-09-01 00:00:00 UTC2021-10-01 00:00:00 UTC303
Oct 20212021-10-01 00:00:00 UTC2021-11-01 00:00:00 UTC202
Nov 20212021-11-01 00:00:00 UTC2021-12-01 00:00:00 UTC404
Dec 20212021-12-01 00:00:00 UTC2022-01-01 00:00:00 UTC615
Jan 20222022-01-01 00:00:00 UTC2022-02-01 00:00:00 UTC404
Feb 20222022-02-01 00:00:00 UTC2022-03-01 00:00:00 UTC303
Mar 20222022-03-01 00:00:00 UTC2022-04-01 00:00:00 UTC707
Apr 20222022-04-01 00:00:00 UTC2022-05-01 00:00:00 UTC505
May 20222022-05-01 00:00:00 UTC2022-06-01 00:00:00 UTC413
Jun 20222022-06-01 00:00:00 UTC2022-07-01 00:00:00 UTC101
Jul 20222022-07-01 00:00:00 UTC2022-08-01 00:00:00 UTC000
Aug 20222022-08-01 00:00:00 UTC2022-09-01 00:00:00 UTC000
Sep 20222022-09-01 00:00:00 UTC2022-10-01 00:00:00 UTC000
Oct 20222022-10-01 00:00:00 UTC2022-11-01 00:00:00 UTC000
Nov 20222022-11-01 00:00:00 UTC2022-12-01 00:00:00 UTC000
Dec 20222022-12-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
Jan 20232023-01-01 00:00:00 UTC2023-02-01 00:00:00 UTC000
Feb 20232023-02-01 00:00:00 UTC2023-03-01 00:00:00 UTC000
Mar 20232023-03-01 00:00:00 UTC2023-04-01 00:00:00 UTC101

What Hacker News says

44 sources
There was a technique that existed already where you could use `go test -cover` and the `-o` flag to produce a binary from `go test` rather than actually running tests. So you could build a binary that had coverage enabled. Then when you exercised code paths by running that binary with whatever inputs, coverage would be collected and dumped into some local file. Here's an example of the build step: https://github.com/multiprocessio/datastation/blob/main/runn.... And here's how I'd analyze coverage after using the binary: https://github.com/multiprocessio/datastation/blob/main/runn.... This analysis actually combined both unit test coverage files with integration test coverage so it gave a pretty good overall indication of code paths covered by any tests. I can't remember where I found this technique but it's been around for a while. This
Read the rest
new option is the same thing but a way to `go build` with `-cover` instead of `go test -cover -o $out`? Do I have that right? Another example of doing this from 2019: https://stackoverflow.com/a/55640874/1507139. I'm sure I learned about this from somebody's blog but I can't remember where.
In Code coverage for Go integration tests
I use Electron for DataStation [0]. Electron has builtin message passing between the UI layer and the main process. I built a small wrapper around this in TypeScript so I could have the messages be typechecked. Within the main process I actually have it call a Go process to handle all the heavy lifting that goes on in DataStation like database queries, HTTP requests, etc. Communication between the Nodejs main process and the Go process just happens in temp files. All long-term data is stored in SQLite. Happy to talk more about it if you want! My email is in my profile. [0] https://github.com/multiprocessio/datastation
In Ask HN: What are modern architecture patterns for desktop applications?
My biggest issue with Pyodide (which is of course an awesome project/build on its own) is the long wait times. I haven't figured out a way around a ~5 second load time where the entire UI hangs every single time you load the page. My app (similar to Simon's, a lite mode of a data IDE): https://app.datastation.multiprocess.io. My code: https://github.com/multiprocessio/datastation/blob/main/shar....
In Datasette Lite: a server-side Python web application running in a browser
I use Go heavily cross-platform developing DataStation [0] and dsq [1]. I am not an expert. And I don't have proof for it but on some rudimentary benchmarks the Linux-specific file idioms in the Go standard library definitely don't seem to translate well to even macOS let alone Windows. For example some good streaming techniques for reading large files on Linux that work really well there seemed to be pretty bad on macOS. I think Amos has presented more proof than I can on the topic of just how Linux-influenced Go is. And I think it is fine for the majority of Go users because the majority users of Go are building server apps or Linux CLIs. Amos has spent some time building cross-platform desktop systems with Go for itch.io and I think I'm seeing some of the same things they are in that scenario. I think this is a reasonable article. I di
Read the rest
dn't notice anything too flame-y myself but if for you Amos gets flame-y at any point I think that's worth ignoring because there does seem to be something up with Go in cross-platform applications. Amos does have good experience here. (Go look at itchi.io's github like wharf [2] or butler [3] where they are/were the main contributor.) I like Go a lot and for most things I'd keep using it still. Just sharing some observations. [0] https://github.com/multiprocessio/datastation [1] https://github.com/multiprocessio/dsq [2] https://github.com/itchio/wharf [3] https://github.com/itchio/butler
In Lies we tell ourselves to keep using Golang
Thanks for including dsq! Its focus is always going to be flexibility and UX over performance since it's just a thin wrapper over the internals of a GUI data integration tool [0]. For example many other tools operate on only one or two file types and have optimized for querying on those types. Some like octosql and spyql IIRC have implemented their own sql parsing layer and engine. So if full sql support is necessary you may not be able to use them. In contrast dsq supports excel, avro, parquet, json, csv/tsv, nginx logs, apache logs, json newline, concatenated json, etc. And this list keeps growing. Dsq stores data in sqlite under the hood so you have access to the full sqlite dialect. Textql and q also do it this way. That said, despite performance not being the major I goal I think it will get better over time. There's already an OSS c
Read the rest
ontributor who happens to be thinking about perf. If you're interested in getting started with OSS contributions btw I keep a page of good first projects [0]. If you know Go you're in a good place to contribute. I've already had a number of people take me up on this and merged a number of PRs by first-time OSS contributors. [0] https://github.com/multiprocessio/datastation [1] https://github.com/multiprocessio/datastation/blob/main/GOOD...
In The fastest tool for querying large JSON files is written in Python (benchmark)
This looks awesome! I've already played around with pyodide and coldbrew doing the same thing for CPython. I use it for an in-memory playground [0] of an open-source desktop app I build [1]. I've been waiting for Ruby, Julia, and R support to add them in too. That said, I am not seeing a link in here about how to actually use this code. Is there a good tutorial/example somewhere? [0] app.datastation.multiprocess.io [1] github.com/multiprocessio/datastation
In Ruby 3.2 preview 1 with support for WASM compilation
I build a desktop data IDE that helps you query files, APIs, databases; script the results; and graph/export. It was important to me to be desktop-first so that you can try it out at work without needing to go through the rigmarole required of a SaaS data analysis product. It'd be as hard to get permission for as installing Sublime or DBeaver. If I got funding or this becomes sustainable I'd be interesting in building native versions. https://github.com/multiprocessio/datastation
In Ask HN: Why aren't devs making desktop apps any more?
When I worked as an employee I contributed mostly just with docs fixes or bug reports (and not that often). I think it's mostly a mindset of seeing an issue yourself and noticing that others probably also are confused or misled by something so you go and report it! Now that I'm working full-time on open-source and my own company I can contribute more easily to projects like upgrading SQLite source in a few bindings libraries [0], [1], [2] when 3.38 came out. If anyone is interested in contributing to open-source and wants a bit more guidance though I have a number of good "first timer" projects related to data tooling for [3]. Only expectation is that you have some experience with Go. Join discord.multiprocess.io, go to the #dev channel and say hi! [0] https://github.com/mattn/go-sqlite3/pull/1019 [1] https://github.com/mapbox/node-sqlite
Read the rest
In Ask HN: Do you contribute to open source projects?
In addition to jq (already mentioned) here are some other useful CLI tools for dealing with JSON data. Descriptions are directly from GitHub. Note: dsq also has a companion GUI app called DataStation[0] if you're looking for that. fx: Command-line JSON processing tool - https://github.com/antonmedv/fx dasel: JSON, YAML, TOML, XML, and CSV query and modification tool - https://github.com/TomWright/dasel dsq: CLI tool for running SQL queries against JSON, CSV, Excel, Parquet, and more - https://github.com/multiprocessio/dsq gron: Make JSON greppable - https://github.com/tomnomnom/gron jello: Filter JSON and JSON Lines data with Python syntax - https://github.com/kellyjonbrazil/jello jless: Command-line pager for JSON data - https://github.com/PaulJuliusMartinez/jless jid: Json incremental digger - https://github.com/simeji/jid jql: JSON que
Read the rest
In Ask HN: Local Tools for Viewing JSON
I've got a lot of good first projects for github.com/multiprocessio/datastation and github.com/multiprocessio/dsq. If you have any experience in Go it will be easy to get you up and running. I've already had a few students and self-learners start contributing. Join #dev on discord.multiprocess.io and say hi and I'll show you some of the stuff you can help with.
In Ask HN: Who is looking for help on a project?

Showing the 15 most recent of 44 sources. Enable JavaScript to search and browse every indexed mention.

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.