1 unstable release
new 0.23.0 | Jan 30, 2025 |
---|
#205 in Compression
57 downloads per month
155KB
2.5K
SLoC
vx
A small, helpful CLI tool for exploring and analyzing Vortex files.
browse
: Browse the structure of your Vortex file with a rich TUItree
: print the file contents as JSON
Examples
Using the tree
subcommand to print the encoding tree for a file:
$ vx tree ./bench-vortex/data/tpch/1/vortex_compressed/nation.vortex
root: vortex.struct(0x04)({n_nationkey=i64, n_name=utf8, n_regionkey=i64, n_comment=utf8?}, len=25) nbytes=3.04 kB (100.00%)
metadata: StructMetadata { validity: NonNullable }
n_nationkey: $vortex.primitive(0x03)(i64, len=25) nbytes=201 B (6.62%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=8): 200 B
n_name: $vortex.varbinview(0x06)(utf8, len=25) nbytes=461 B (15.18%)
metadata: VarBinViewMetadata { validity: NonNullable, buffer_lens: [27] }
views: $vortex.primitive(0x03)(u8, len=400) nbytes=401 B (13.20%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=1): 400 B
bytes_0: $vortex.primitive(0x03)(u8, len=27) nbytes=28 B (0.92%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=1): 27 B
n_regionkey: $vortex.dict(0x14)(i64, len=25) nbytes=83 B (2.73%)
metadata: DictMetadata { codes_ptype: U8, values_len: 5 }
values: $vortex.primitive(0x03)(i64, len=5) nbytes=41 B (1.35%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=8): 40 B
codes: $vortex.primitive(0x03)(u8, len=25) nbytes=26 B (0.86%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=1): 25 B
n_comment: $vortex.varbinview(0x06)(utf8?, len=25) nbytes=2.29 kB (75.44%)
metadata: VarBinViewMetadata { validity: AllValid, buffer_lens: [1857] }
views: $vortex.primitive(0x03)(u8, len=400) nbytes=401 B (13.20%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=1): 400 B
bytes_0: $vortex.primitive(0x03)(u8, len=1857) nbytes=1.86 kB (61.18%)
metadata: PrimitiveMetadata { validity: NonNullable }
buffer (align=1): 1.86 kB
Opening an interactive TUI to browse the sample file:
vx browse ./bench-vortex/data/tpch/1/vortex_compressed/nation.vortex
Development
TODO:
-
cat
to print a Vortex file as JSON to stdout -
compress
to ingest JSON/CSV/other formats that are Arrow-compatible
Dependencies
~37–70MB
~1M SLoC