Quickstart
OpenAlex now publishes the snapshot natively in parquet, so the flow is: download → verify_download → (auto) enrich → index → extract.
Build
cd openalex-snapshot
cargo build --release
./target/release/openalex-snapshot --help
Preflight
./target/release/openalex-snapshot check \
--root-dir /Volumes/openalex \
--dataset all
Download the parquet snapshot
Syncs the official parquet per-dataset into <root>/parquet/ and auto-enriches works
(works_aws/ → works/, adding abstract + citation). Pass --no-enrich to skip.
./target/release/openalex-snapshot download --root-dir /Volumes/openalex
Verify the download
Checks every file against the published manifest.json (presence + size + row count).
./target/release/openalex-snapshot verify_download --root-dir /Volumes/openalex
# fast size-only: --quick full row scan: --full
Enrich works (only if you used --no-enrich)
./target/release/openalex-snapshot enrich --root-dir /Volumes/openalex
Build and verify indexes
./target/release/openalex-snapshot index \
--root-dir /Volumes/openalex \
--dataset all # builds an index per dataset; skips the raw works_aws/ staging dir
./target/release/openalex-snapshot verify_index \
--root-dir /Volumes/openalex \
--dataset all
Extract by IDs
./target/release/openalex-snapshot extract \
--root-dir /Volumes/openalex \
--ids /Volumes/openalex/ids.csv \
--output /Volumes/openalex/extract.parquet
Or run the whole pipeline from config
./target/release/openalex-snapshot all --config ./openalex-snapshot.yaml