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.2.tar.gz (60.4 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.2-cp314-cp314-win_amd64.whl (747.7 kB view details)

Uploaded CPython 3.14Windows x86-64

ambers-0.1.2-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.2-cp314-cp314-macosx_11_0_arm64.whl (815.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ambers-0.1.2-cp313-cp313-win_amd64.whl (747.5 kB view details)

Uploaded CPython 3.13Windows x86-64

ambers-0.1.2-cp313-cp313-manylinux_2_34_x86_64.whl (892.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

ambers-0.1.2-cp312-cp312-win_amd64.whl (748.2 kB view details)

Uploaded CPython 3.12Windows x86-64

ambers-0.1.2-cp312-cp312-manylinux_2_34_x86_64.whl (893.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

ambers-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (815.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ambers-0.1.2.tar.gz
  • Upload date:
  • Size: 60.4 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.2.tar.gz
Algorithm Hash digest
SHA256 8e3058a5104c84185a03410b5d61dc4d6f883f37ee23418502a94f586df9bc48
MD5 fd56b690fc1e3d08c5e98adf556b5906
BLAKE2b-256 d82f986e1713768500eeb59e51f32e4faa39a24f728ef2197f902ba37fe2b0fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2.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.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 747.7 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8f1c4c960545e1be92e9ab61c2e4b8671457632f4cfa40235052af7c3065097b
MD5 ba8dceb70c9a39090c2e157c77452de5
BLAKE2b-256 42137220ed74bec30254df1dbd312416f0c04db42c0421e0be48d12e81434914

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ecf00ba2b6f59f431d58056b461e65d6169861a46f78827f97604c4a654435f4
MD5 1a10505864fd1a80e7830e35dd83df18
BLAKE2b-256 3af1459577db7aaf5cb685d8880bf385f7ddae2a436a753549612592cd0ff5e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b0cf64c6acd20dc8b8bc2e41e56a6f58af053c9404d72a8176c9b952633991e
MD5 3adcfc5354daac27cb4964934f58be68
BLAKE2b-256 c1f9229935e6263998e0fc1f53015ee2ffab15dd179337139012002d96de7e7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 747.5 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5e4fc78b6d76df757e336cd44e8dae748f813bb61141f72522dadce0a8454b06
MD5 b306246e491ab6fd2f69cc2208c98502
BLAKE2b-256 2cb45bfb7eaf6867509decd3b6368a4f889239b1cefb3a1a692cc31742e1fead

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d1671eb6bb5423f4a3388dbc4c243e71959e8b22de6598022a82a0e348bf9864
MD5 7d11b2f9608cfe91c27c8a0149d8e353
BLAKE2b-256 753cfeeddf3a19b915351f933007a712d41474045821457e00a1a6eabbc2316a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 872eb9b764d3ed4dcfa42f3b9287cfac77abc67b04ca15dc309730b9f0da07b6
MD5 6f2771108ce593b467a4da471232de44
BLAKE2b-256 58dcccc9d8ec789f17cff7ddfffd6ecac102963a82473198a2ca246d87cc9b89

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ambers-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 748.2 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 db6efd19eecf0eb48a5f3e62692cd68ea220607dd3551ba6aaf2c1902196cd7b
MD5 cc4780c12b183e00a3b312084b1b496f
BLAKE2b-256 7868eb3835addaa6e1614857141b2c8d674fae0f6ac0ce5011e7303be4a5c380

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0c6d17b0c0a64f1f0bdb0fc03db9608f40ebac2aedba779d5fc26b983e7281f5
MD5 aed7263a07b99253884bafae3197d774
BLAKE2b-256 23113c121dbbca4bad0101d3c8dea59db9d1b219aab8515390b4a8c7fe20ac16

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ambers-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6cd13a2bc1b37b4fdfcdabac6f71f410c2c2b0f06adcf8e3c1b4afdd37178cef
MD5 dc983bc10a31ea18acbdac6db0acadcd
BLAKE2b-256 3839b9c37c3419211bdba7684e6c2a209e5d8994df4c085155999fb40faf1551

See more details on using hashes here.

Provenance

The following attestation bundles were made for ambers-0.1.2-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