Features:
June 20, 2026 ยท View on GitHub
qsv has several features:
jemallocator(default) - use the jemalloc allocator (see Memory Allocator for more info).mimalloc- use the mimalloc allocator (see Memory Allocator for more info).apply- enableapplycommand. This swiss-army knife of CSV transformations is very powerful, but it has a lot of dependencies that increases both compile time and binary size.fetch- enables thefetch&fetchpostcommands.get- enablegetcommand. Gets tabular data from various sources into a content-addressed disk cache, withdc:cache references usable as input to other commands.get_cloud- extendsgetwith cloud object-store sources (s3://,gs://,az://).foreach- enableforeachcommand.geocode- enablegeocode&geoconvertcommands.clipboard- enableclipboardcommand.color- enablecolorcommand. Enables colorized tabular output. When thepolarsfeature is also enabled, supports multiple non-CSV formats.lens- enablelenscommand.luau- enableluaucommand. Embeds a Luau interpreter into qsv. Luau has type-checking, sandboxing, additional language operators, increased performance & other improvements over Lua. Luau is the DSL of qsv - as its statically linked, has a MUCH smaller footprint (in both file size and memory without having to deal with Python's infamous Global Interpreter Lock) & is faster (in both startup & execution time) than Python.polars- enables all Polars-powered commands (currently,joinp,pivotp,scoresqlandsqlpand enables polars mode incount). It also enables support for reading.parquet,.ipc/.arrowand.json/.jsonlformats as well as.csv.gz,.csv.zstand.csv.zlibcompressed files.
Note that Polars is a very powerful library, but it has a lot of dependencies that drastically increases both compile time and binary size.prompt- enablepromptcommand.python- enablepycommand. Note that qsv will look for the shared library for the Python version (Python 3.11 & above supported) it was compiled against & will abort on startup if the library is not found, even if you're NOT using thepycommand. Check Python section for more info. Though Luau is the preferred DSL for qsv for all the reasons stated above, Python is still the lingua franca of data wrangling.synthesize- enablesynthesizecommand. Generates statistically-faithful synthetic CSVs from a source CSV usingstats+frequencyplus, optionally, semantic Content Types from a Data Dictionary to pick realistic fake-rs fakers.viz- enablevizcommand. Generates interactive Plotly charts (bar, line, scatter, histogram, box, pie, heatmap, candlestick, ohlc, sankey, radar, and asmartauto-dashboard) as self-contained, browser-openable HTML.viz_static- extendsvizwith static image export (PNG/SVG/PDF/JPEG/WebP) via plotly_static. Requires a headless browser (Chrome or Firefox) and a webdriver at runtime (webdriver is auto-downloaded).profile- enableprofilecommand. Extracts and infers DCAT-3/Croissant metadata from a CSV using a scheming spec.geoconnex- extendsprofilewith thegeoconnexprofile for hydrologic/water-data federations (JSON-LD output).magika- enable Magika-powered, AI-based file type detection in thesniffcommand for enhanced MIME type identification. Falls back to thefile-formatcrate inqsvlite/qsvdpvariants. Not available on MUSL builds.mcp- enablelogcommand and MCP (Model Context Protocol) skill JSON generation for AI agent integration.to- enables thetocommand.self_update- enable self-update engine, checking GitHub for the latest release. Note that if you manually built qsv, self-update will only alert you about new releases (it checks GitHub for the latest release 50% of the time when qsv is invoked with no command, unless theQSV_NO_UPDATEenvironment variable is set). It will NOT offer the choice to update itself to the prebuilt binaries published on GitHub.
You need not worry that your manually built qsv will be overwritten by a self-update.
To check if your qsv build will have the option to self-update, runqsv --version. If you seeself_updatein the enabled features, and QSV_KIND isprebuilt*at the end, then you have the option to self-update.ui- enables commands that require linking UI libraries -clipboard,color,lensandprompt. Disable this feature if you're building for a headless environment. Note thatqsvdpandqsvlitedoes not enable theuifeature by default.
Special Features for building qsv binary variants:
-
feature_capable- enable to buildqsvbinary variant which is feature-capable. Also used byqsvmcp. (mutually exclusive withliteanddatapusher_plus)all_features- shortcut to buildqsvbinary variant with all features enabled (apply,fetch,foreach,geocode,geoconnex,get,get_cloud,luau,magika,mcp,polars,profile,synthesize,to,viz_static,self_update,ui).
-
qsvmcp- enable to buildqsvmcpbinary variant - optimized for MCP server use with geocode, get, get_cloud, mcp, polars, profile, self_update, synthesize, to, and viz_static features. Sharessrc/main.rswithqsv. (mutually exclusive withliteanddatapusher_plus) -
lite- enable to buildqsvlitebinary variant with all features disabled. (mutually exclusive withfeature_capableanddatapusher_plus) -
datapusher_plus- enable to buildqsvdpbinary variant - the DataPusher+ optimized qsv binary. Pulls ingeocode,get,get_cloud,polars,profile, andself_update. (mutually exclusive withfeature_capableandlite) -
nightly- enable to turn on nightly-only features when building with Rust nightly/unstable. Specifically:crc32fast/nightly,pyo3/nightly,rand/simd_support,simd-json/hintsandfoldhash/nightly. Note that Polars has its own separatenightly-polarsfeature. -
distrib_features- enable to buildqsvbinary variant with the core distribution features enabled (apply, fetch, foreach, geocode, geoconnex, get, get_cloud, luau, mcp, polars, profile, synthesize, to, viz_static) - i.e. all features exceptself_update,ui,magika, andpython. This should make it easier for distro packagers to buildqsvas qsv removes and adds features over time.
Note
qsvlite, as the name implies, always has non-default features disabled. qsv can be built with any combination of the above features using the cargo --features & --no-default-features flags. The prebuilt qsv binaries have all applicable features valid for the target platform.