https://github.com/leeoniya/utable
A tiny, fast UI for viewing, sorting, and filtering CSVs
https://github.com/leeoniya/utable
Last synced: 7 months ago
JSON representation
A tiny, fast UI for viewing, sorting, and filtering CSVs
- Host: GitHub
- URL: https://github.com/leeoniya/utable
- Owner: leeoniya
- License: mit
- Created: 2023-12-31T14:08:24.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-06T03:23:28.000Z (10 months ago)
- Last Synced: 2025-03-18T08:53:37.100Z (7 months ago)
- Language: TypeScript
- Homepage:
- Size: 75.2 KB
- Stars: 16
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 𝌠 μTable
A tiny, fast UI for viewing, sorting, and filtering CSVs _(MIT Licensed)_
---
### IntroductionμTable is a fast interface for viewing CSV files.
It draws much inspiration from [thoughtspile/hippotable](https://github.com/thoughtspile/hippotable), but makes different tech choices with the goal of being smaller and faster.
μTable
Hippotable
JS Framework
ivi
SolidJS
CSV Parsing
μDSV
Arquero (d3-dsv)
Virtualization
own (< 0.5 KB)
TanStack/table (~60 KB)
Sorting / filtering
own + μExpr (< 4 KB)
Arquero (~400 KB)
localStorage Persistence
no
yes
Bundle size
20 KB
416 KB
Both projects are very early, and the choices made by Hippotable are totally sensible, considering its plans to leverage much more of the Arquero library.
I have, however, previously tested some Arquero functions (such as grouping) and found its performance to be lacking in multiple areas.uTable has similar goals as Hippotable, but [perhaps] with greater scrutiny on external dependencies, and will always roll its own solutions when there are significant performance and/or size benefits.
---
### Features---
### How to use**Statically hosted:**
1. Open https://leeoniya.github.io/uTable
2. Drag/drop a CSV file into the UI**Locally or dev:**
1. Clone this repo
2. Install dependencies: `npm install`
3. Build bundle: `npm run build`
4. Run an http server in repo root that can serve static files, for example:
1. Install: `npm i -g http-server`
2. Run `http-server` in repo root
5. Open `http://localhost:8080/`
6. Drag/drop a CSV file into the UI---
### Performance