posit-dev / posit-dev/ggsql

ggsql-wasm should not rely on a JavaScript library for CSV/Parquet parsing

Open
#354 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
554
Forks
30
Avg merge
17h 27m
Merged PRs (30d)
8

Description

Instead, Rust parsers (that are also wasm-compatible) should be used. We can then use wasm_bindgen to bind a JS Uint8Array to a Rust &[u8] to pass source data to such libraries. This should improve performance, especially when ingesting large data files.

This will also allow ggsql-wasm to build for native targets as well as wasm32-unknown-unknown, though really I don't know how useful such a build actually is, other than perhaps for testing.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the ggsql-wasm parsing entry points and identify the current JavaScript CSV/Parquet library calls; then inspect the wasm_bindgen Uint8Array-to-Rust byte-slice boundary. Done means CSV and Parquet parsing uses wasm-compatible Rust parsers, while builds work for both wasm32-unknown-unknown and native targets.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, rust, wasm
Domain
data, databases
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.