| Crates.io | javelin-tui |
| lib.rs | javelin-tui |
| version | 0.10.0 |
| created_at | 2025-12-01 03:58:30.679118+00 |
| updated_at | 2025-12-20 14:43:43.385036+00 |
| description | Display and work with Lance matrices |
| homepage | |
| repository | https://github.com/tuned-org-uk/javelin-tui |
| max_upload_size | |
| id | 1959256 |
| size | 382,243 |
JJJJJJJJJJJ AAA VVVVVVVV VVVVVVVV
J:::::::::J A:::A V::::::V V::::::V
J:::::::::J A:::::A V::::::V V::::::V
JJ:::::::JJ A:::::::AV::::::V V::::::V
J:::::J A:::::::::AV:::::V V:::::V
J:::::J A:::::A:::::AV:::::V V:::::V
J:::::J A:::::A A:::::AV:::::V V:::::V
J:::::j A:::::A A:::::AV:::::V V:::::V
J:::::J A:::::A A:::::AV:::::V V:::::V
JJJJJJJ J:::::J A:::::AAAAAAAAA:::::AV:::::V V:::::V
J:::::J J:::::J A:::::::::::::::::::::AV:::::V:::::V
J::::::J J::::::J A:::::AAAAAAAAAAAAA:::::AV:::::::::V
J:::::::JJJ:::::::JA:::::A A:::::AV:::::::V
JJ:::::::::::::JJA:::::A A:::::AV:::::V
JJ:::::::::JJ A:::::A A:::::AV:::V
JJJJJJJJJ AAAAAAA AAAAAAAVVV
EEEEEEEEEEEEEEEEEEEEEELLLLLLLLLLL IIIIIIIIII
E::::::::::::::::::::EL:::::::::L I::::::::I
E::::::::::::::::::::EL:::::::::L I::::::::I
EE::::::EEEEEEEEE::::ELL:::::::LL II::::::II
E:::::E EEEEEE L:::::L I::::I
E:::::E L:::::L I::::I
E::::::EEEEEEEEEE L:::::L I::::I
E:::::::::::::::E L:::::L I::::I
E:::::::::::::::E L:::::L I::::I
E::::::EEEEEEEEEE L:::::L I::::I
E:::::E L:::::L I::::I
E:::::E EEEEEE L:::::L LLLLLL I::::I
EE::::::EEEEEEEE:::::ELL:::::::LLLLLLLLL:::::LII::::::II
E::::::::::::::::::::EL::::::::::::::::::::::LI::::::::I
E::::::::::::::::::::EL::::::::::::::::::::::LI::::::::I
EEEEEEEEEEEEEEEEEEEEEELLLLLLLLLLLLLLLLLLLLLLLLIIIIIIIIII
NNNNNNNN NNNNNNNN
N:::::::N N::::::N
N::::::::N N::::::N
N:::::::::N N::::::N
N::::::::::N N::::::N
N:::::::::::N N::::::N
N:::::::N::::N N::::::N
N::::::N N::::N N::::::N
N::::::N N::::N:::::::N
N::::::N N:::::::::::N
N::::::N N::::::::::N
N::::::N N:::::::::N
N::::::N N::::::::N
N::::::N N:::::::N
N::::::N N::::::N
NNNNNNNN NNNNNNN
Lance inspector and TUI for Arrow/Lance datasets.
Javelin is a Rust-based command-line and TUI tool for inspecting datasets stored in the Lance format (and compatible Parquet exports). It focuses on fast, ergonomic exploration of embedding-like matrices, sparse COO data, and 1D vectors using an interactive terminal UI built on ratatui and crossterm. Next step: graph visualisations, please star ⭐ the repo.
Download one of the pre-built packages in Releases.
Compile with cargo:
cargo install javelin-tui
# generate a toy dataset
javelin generate
# load the dataset in the tui
javelin --filepath ./javelin_test
# Select one of the supported files types
- Dense
- Sparse (COO, like adjacency matrices)
- 1D vectors (i.e. norms)
# Explore the different modes
[Head]
[Sample]
[Display]
[T] Transpose
[q] Exit
# Show the first 20 rows
javelin --filepath /path/to/dataset.lance head --n 20
# Randomly sample 50 rows, preserving original indices
javelin --filepath /path/to/dataset.lance sample --n 50
# Open full dataset in TUI viewer
javelin --filepath /path/to/dataset.lance display
# Launcher for a directory of Lance datasets
javelin --filepath /path/to/dir
If you omit the subcommand:
filepath is a directory, the launcher scans it for .lance files.filepath is a file, you can still use the launcher to choose a command.javelin --filepath /path/to/dir starts a launcher that:
.lance datasets.If no subcommand is provided, the default is the TUI launcher.
col_* layouts.col_*.LanceLayout::Vector1D data (e.g. eigenvalues, norms).row, col, value schema.(row, col, value) entries.cmd_sample:
n distinct row indices.take to build a sampled RecordBatch.row_idx column with the original dataset indices.cmd_head:
n rows in the interactive viewer.cmd_stats:
Uses a LanceStorage backend to:
save_dense("raw_input").Parquet support:
RecordBatches.FixedSizeList<Float64>), orcol_* columns.save_dense.cargo).git clone https://gitlab.com/yera/javelin.git
cd javelin
cargo build --release
The binary will be available at:
target/release/javelin
Key bindings:
Behavior:
Dense layouts show:
col_* features.avg and std computed over all numeric feature columns.1D layouts show:
Key bindings are the same for scrolling:
Panels:
row, col, value with vertical scrolling.FixedSizeList<Float64> column (e.g. vector).LanceLayout::Vector1D.row: UInt32
col: UInt32
value: Float64
rows, cols, nnz).Vector-like: FixedSizeList<Float64> column(s).
Wide columnar: multiple Float64 col_* columns.
Wide columnar data is:
Interpreted as a dense matrix.
Saved via save_dense("raw_input") into Lance format.
Then handled by the same TUI paths as native Lance data.
javelin --filepath embeddings.lance display
avg and std.javelin --filepath embeddings.lance sample --n 100
row_idx column to see which original rows were sampled.javelin --filepath ./experiments
javelin --filepath graph.lance display
See the LICENSE file in this repository for licensing details. Respect all third-party library licenses when redistributing binaries or integrating Javelin into other systems.