https://github.com/xiangpenghao/parquet-viewer
View parquet files online
https://github.com/xiangpenghao/parquet-viewer
parquet parquet-viewer rust webassembly
Last synced: 2 months ago
JSON representation
View parquet files online
- Host: GitHub
- URL: https://github.com/xiangpenghao/parquet-viewer
- Owner: XiangpengHao
- License: apache-2.0
- Created: 2024-11-03T17:34:31.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-25T03:32:07.000Z (3 months ago)
- Last Synced: 2025-03-29T19:01:10.517Z (3 months ago)
- Topics: parquet, parquet-viewer, rust, webassembly
- Language: Rust
- Homepage: https://parquet-viewer.xiangpeng.systems/
- Size: 11.2 MB
- Stars: 141
- Watchers: 5
- Forks: 3
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Parquet Viewer
Online at: https://parquet-viewer.xiangpeng.systems
### Features
- Query parquet data with SQL ✅
- Query parquet data with natural language through LLM ✅
- View Parquet metadata ✅
- View Parquet files from anywhere -- local file, S3, or any URLs ✅
- Everything runs in the browser, no server, no external dependencies, just a web page ✅
- Read only you query -- won't download the entire parquet file ✅### Demo

### Tips
- You can use `?url=` to load a file from a url.
For example, [`parquet-viewer.xiangpeng.systems/?url=https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/all.parquet`](https://parquet-viewer.xiangpeng.systems/?url=https://raw.githubusercontent.com/tobilg/public-cloud-provider-ip-ranges/main/data/providers/all.parquet) will load the file from github.
`parquet-viewer` is smart enough to only download the data that is relevant to your query, usually a few KBs, even if the file is large.- You can use `parquet-viewer.py` in `utils` to open a local file. Only works on Chrome or Firefox (not Safari).
```bash
./parquet-viewer.py /path/to/your/file.parquet
```## Development
It compiles [Parquet](https://github.com/apache/arrow-rs), [Arrow](https://github.com/apache/arrow-rs), [Datafusion](https://github.com/apache/datafusion), [OpenDAL](https://github.com/apache/opendal) to WebAssembly and uses it to explore Parquet files, [more details](https://blog.haoxp.xyz/posts/parquet-viewer/).
Checkout the awesome [Leptos](https://github.com/leptos-rs/leptos) framework.
```bash
cargo install trunk --lockedtrunk serve --open
trunk build --release
```#### Run tests
```bash
cargo install wasm-pack --locked
wasm-pack test --headless --firefox
```## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)at your option.
Be aware that most of the code is generated by AI, resistance is futile.