Skip to main content

Pure Rust SPSS .sav/.zsav reader with Polars DataFrame output

Project description

ambers

Crates.io PyPI License: MIT

Pure Rust SPSS .sav/.zsav reader — Arrow-native, zero C dependencies.

Features

  • Read .sav (bytecode) and .zsav (zlib) files
  • Arrow RecordBatch output — zero-copy to Polars, DataFusion, DuckDB
  • Rich metadata: variable labels, value labels, missing values, MR sets, measure levels
  • 2–3x faster than pyreadstat
  • Python + Rust dual API from a single crate

Installation

Python:

pip install ambers

Rust:

cargo add ambers

Quick Start

Python

import ambers as am

# Read data + metadata
df, meta = am.read_sav("survey.sav")

# Explore metadata
meta.summary()
meta.describe("Q1")
meta.value("Q1")

# Read metadata only (fast, skips data)
meta = am.read_sav_metadata("survey.sav")

Rust

use ambers::{read_sav, read_sav_metadata};

// Read data + metadata
let (batch, meta) = read_sav("survey.sav")?;
println!("{} rows, {} cols", batch.num_rows(), meta.number_columns);

// Read metadata only
let meta = read_sav_metadata("survey.sav")?;
println!("{}", meta.label("Q1").unwrap_or("(no label)"));

Metadata API (Python)

Method Description
meta.summary() Formatted overview: file info, type distribution, annotations
meta.describe("Q1") Deep-dive into a single variable (or list of variables)
meta.diff(other) Compare two metadata objects, returns MetaDiff
meta.label("Q1") Variable label
meta.value("Q1") Value labels dict
meta.format("Q1") SPSS format string (e.g. "F8.2", "A50")
meta.measure("Q1") Measurement level ("nominal", "ordinal", "scale")
meta.schema Full metadata as a nested Python dict

All variable-name methods raise KeyError for unknown variables.

Streaming Reader (Rust)

let mut scanner = ambers::scan_sav("survey.sav")?;
scanner.select(&["age", "gender"])?;
scanner.limit(1000);

while let Some(batch) = scanner.next_batch()? {
    println!("Batch: {} rows", batch.num_rows());
}

Performance

File Size Rows Cols ambers pyreadstat Speedup
251001.sav 147 MB 22,070 677 1.27s 3.07s 2.4x
rpm_2025_tracking 1.1 GB 79,066 915 2.42s 6.40s 2.6x

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ambers-0.1.0.tar.gz (60.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ambers-0.1.0-cp314-cp314-win_amd64.whl (747.4 kB view details)

Uploaded CPython 3.14Windows x86-64

ambers-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl (892.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

ambers-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (815.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ambers-0.1.0-cp313-cp313-win_amd64.whl (747.3 kB view details)

Uploaded CPython 3.13Windows x86-64

ambers-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl (891.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

ambers-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (815.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ambers-0.1.0-cp312-cp312-win_amd64.whl (747.8 kB view details)

Uploaded CPython 3.12Windows x86-64

ambers-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (892.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

ambers-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (815.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

Details for the file ambers-0.1.0.tar.gz.

File metadata

  • Download URL: ambers-0.1.0.tar.gz
  • Upload date:
  • Size: 60.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ambers-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0371502dd1b5c5e871cddf55c78b7bd0480bd14492094d0121bab4f8005ee732
MD5 7af97c4c641d9e480abf4bdbf42b9980
BLAKE2b-256 20333496ce8a20d8ac82fca6a70c463ceaa2b8607402851153d26ae232e134ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0.tar.gz:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 747.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ambers-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 158989020a531bdaf0c81bd05bfac100d871c1cad03586fb61665b3397c12b42
MD5 17bda85be59b7f8e2ac43cb811815311
BLAKE2b-256 7a37a63bbd43c2ae0691d30e1862361becd411080e3691b8a9fff0613f3fbef2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 93ffaa10db13c47f308d2ab8b3f449618c4fdee0636238314de5bc65abcd2992
MD5 e6641e0e1092e27e1f6fbe561f3b7bb7
BLAKE2b-256 020d794e2b86146f65e86710a452d7ecfa756752eb5c94aa493bb7021883344c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbf1e3f2b88f8969f571b694cd7acf1885d46c2ee74cb33f4d05f2d875de37fa
MD5 f13d1ab8796d40e1f00ea6db3ac7b2a9
BLAKE2b-256 43879689c35ccea01c9b4b00d157ee3e0d51eedd78315822e824e3358bd56d73

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 747.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ambers-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 042fae320b6e5a1e48947c377a07df2ab8062ce3a3a388eb5c752fd4dfa6a480
MD5 c352c008292d3111eb756e1807cb3426
BLAKE2b-256 73b4140f4b9bac6627910286148c29cff871fd1fdc7d019268e92607472d1bc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d6d8e3a89d6f62a6773b59c59c9cb1b2c94133da8e7f8efd5950d3113b0cac93
MD5 2ce3be5f172e91d5ed840350b6d65333
BLAKE2b-256 4714c8ba99eddde7955182db03a86a6db3debb0b124f81de0bcd4ac3fe715121

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e80a82a2c5c171ef55cd677ff074e6e0add1f97018601ed962334bd4125cc255
MD5 74aa0b93270b839e001223bc4b4fbfd9
BLAKE2b-256 03fb54dbcc46b59ddecd4b33761de4bbe4c76d240fd35e0779892e4de3fb56f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 747.8 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ambers-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5124853459385bd698606c2c7cda447a27f1888767f252c3ed67ee8241eef7ec
MD5 fe4fe98681666445460cafe8f8285055
BLAKE2b-256 de5da95c55373ffa6f36fba9b9cc308bf5c8f8187e467dd424e6eb0cda9302af

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c20a0f1b5da23adf3d3465f3af3bdc183c32c861505f1d86689428e407d4fca5
MD5 7fad02f7dda85d0ae78ae5f78239b6c3
BLAKE2b-256 fb5121344aa991742fca977b186a4d4f7d53f8a4d1ad5af136502b7a03f55a78

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ambers-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7676ac53b1039cf94fe367e3e66c0776142e0d4687d7b03180885cbe8985c1bd
MD5 5210cfbc13b49ba543c24d3470e5802e
BLAKE2b-256 b5ed223c712446979e25744078406940e6a61d02df5a14523b68293d355dcb3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on albertxli/ambers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page