One-command runnable CSV viewer with search over 10^5–10^6 rows.
npm run compose:up- API: http://localhost:8080
- Web: http://localhost:5173
- POST /upload multipart form-data: field
file(.csv), optionalname - GET /datasets
- GET /datasets/:id
- GET /search?datasetId=...&q=...&limit=50&offset=0
- CSV import is streaming with backpressure and batch inserts (1000 rows) into SQLite. Search uses FTS5 over concatenated row values.
- Volume
./datastores DB and uploads.
See requested layout in the project tree. Backend ingests CSV streams into SQLite with FTS5 for fast search, frontend built with React + Vite.