Hacker News new | ask | show | jobs
by shbhrsaha 1456 days ago
Hey HN,

I made CSVFiddle because I wanted a quick way to query CSV files with SQL and share the results with other people.

The app runs 100% in-browser, so the data you import and the queries you write are never sent to a web server. When you share the URL to a workspace, all of its queries and references to CSV files are just encoded in the URL fragment.

In-browser querying is made possible by DuckDB-Wasm, which has been an awesome project to work with:

https://duckdb.org/2021/10/29/duckdb-wasm.html

There are definitely limitations with CSVFiddle (e.g. sometimes the auto-parsing feature doesn't accurately interpret the imported files), but so far it's been useful for a range of data tasks.

Some demo workspaces you can check out:

University Students by State https://tinyurl.com/6k35anth

Uber Pickups in NYC https://tinyurl.com/5n8av39h

2 comments

Do you have an option to use a .csv from url, e.g.: https://csvfiddle.io/?url=https://foo.com/bar.csv

If not, could you implement it?

I ask because I'm working on a web-based file manager (https://filerion.com/)

One of the feature ideas I have is letting people to view CSV files.

I don't want to implement my own csv viewer and would rather integrate with tools like csvfiddle.

I.e. the user would right-click on a .csv file in my file manager, one of the options would be "View in CSVFiddle".

When chosen, I would create publicly visible, CORS-compatible url for the .csv file (so that you can fetch() it) and launch cvsfiddle.io?url=<url> in a new window.

Does it work with really large files? Like, >100mb or so. I was considering making something similar but with sqlite.js [1], but the problem with it is that it loads everything in memory, so I wasn't entirely sure how it will deal with larger workloads.

[1]: https://sql.js.org/#/

This sounds like a workaround to your problem:

https://news.ycombinator.com/item?id=27016630