Skip to content

v0.14.0 — Portable .pcb binary serialization

Choose a tag to compare

@0xC000005 0xC000005 released this 25 Apr 04:12
· 79 commits to main since this release
8282795

Adds an opt-in portable binary serialization format for ChebyshevApproximation and ChebyshevSpline. Cross-language consumers (C/Rust/Julia) can read PyChebyshev interpolants without Python.

Highlights

  • format='binary' kwarg on save() — opt-in; default stays 'pickle' (no breaking changes).
  • load() auto-detects via 4-byte magic header b"PCB\x00".
  • Stdlib struct + NumPy only — no new runtime dependencies.
  • C reference reader at examples/binary_reader/ (~240 lines, libm only).
  • Format spec at docs/user-guide/binary-format.md.

Restrictions

  • Binary format requires flat n_nodes for ChebyshevSpline. Nested-n_nodes splines raise NotImplementedError on binary save and fall back to pickle.
  • ChebyshevSlider and ChebyshevTT remain pickle-only in v0.14.

See CHANGELOG.md for full details.