Publish for the browser
ParqDB can publish a source table, vector index, and optional embedding model as immutable objects behind one top-level manifest.json. A compatible browser reads only the necessary Parquet byte ranges and ranks candidates in WebAssembly.
Install the publisher
Section titled “Install the publisher”python -m pip install "parqdb[publish]"The extra includes the pinned MiniLM ONNX embedding workflow and S3 publication dependencies. It is not required for ordinary embedded vector search.
Publish existing vectors
Section titled “Publish existing vectors”Your source key must be a dense, ordered, non-null int64 column starting at zero.
parqdb publish \ --source documents.parquet \ --key chunk_id \ --vector-column embedding \ --nlist 4096 \ --encoding lvq8 \ --destination s3://my-bucket/kb/v1 \ --s3-endpoint https://ACCOUNT_ID.r2.cloudflarestorage.com \ --s3-region auto \ --public-url https://data.example.com/kb/v1Credentials come from AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. The publisher refuses to overwrite an existing prefix.
Build embeddings from text
Section titled “Build embeddings from text”Use one or more --text-column options instead of --vector-column:
parqdb publish \ --source documents.parquet \ --key chunk_id \ --text-column title \ --text-column section \ --text-column text \ --nlist 4096 \ --destination s3://my-bucket/kb/v1 \ --public-url https://data.example.com/kb/v1 \ --include-source \ --include-modelThe pinned MiniLM model is used for both offline source embeddings and browser query embeddings. This parity is required: vectors produced by a different model are not comparable.
Choose what to publish
Section titled “Choose what to publish”- The vector index is always included.
--include-sourcepublishes the source Parquet file for payload lookup.--include-modelpublishes the pinned text embedding model and requires--text-column.- Without source data, browser results contain source keys and
_distanceonly.
HTTP requirements
Section titled “HTTP requirements”The public endpoint must:
- serve every object over HTTPS;
- support byte ranges and return
206 Partial Contentwith a validContent-Range; - allow the browser origin through CORS; and
- preserve immutable object URLs.
Unless --no-verify-http is passed, publication verifies public HTTP Range and CORS behavior before it succeeds. The top-level manifest is exposed only after all referenced objects have been uploaded.
Build a complete knowledge base
Section titled “Build a complete knowledge base”parqdb-knowledgebase adds token-aware document chunking, source metadata, and a deployable search UI on top of the browser publication format.
Try the published Wikipedia index at search.parqdb.io.