Skip to main content

Dead-simple, ultra-fast digital signal processing.

Project description

doppler

Dead-simple, ultra-fast digital signal processing.

CI Docs PyPI Python License: MIT

C99 Rust uv Ruff

doppler is a C99 DSP library: NCO, FIR filter, FFT, polyphase resampler, DDC, and ZMQ-based signal streaming. Python and Rust wrap the same C core — no second implementation, no divergence, full SIMD throughput from any language.

Why it's built this way

Every algorithm lives in C exactly once. The Python layer is type conversion and lifetime bridging — a few hundred lines of glue, not a reimplementation. Bugs get fixed once, benchmarks reflect real hardware, and a C transmitter talks to a Python subscriber without surprises.

Performance

On a Ryzen 7 AI 350 (-O2): NCO raw accumulator ~15 GSa/s, LO CF32 ~1.8 GSa/s, FIR CF32 ~900 MSa/s, FFT CF32 (N=4096) ~180 MSa/s, polyphase resampler (2× decim) ~70 MSa/s. Run make bench to measure on your hardware.

Quick start

Python

from doppler.spectral import FFT
import numpy as np

X = FFT(1024).execute(np.random.randn(1024).astype(np.complex64))

C

#include "fft/fft_core.h"

dp_fft_t *fft = dp_fft_create(1024, -1, 1);
dp_fft_execute_cf32(fft, in, 1024, out);
dp_fft_destroy(fft);

Build

jbx install-deps        # install system deps (detects OS/distro)
make                    # C library
make pyext              # + Python bindings
make test               # CTest suite
make bench              # benchmarks

Docs

Full docs at doppler-dsp.github.io/doppler — Quick Start, Architecture, API Reference, Examples.

Licensing

MIT. The default build uses pocketfft (BSD-3-Clause). Build with -DUSE_FFTW=ON for FFTW (LGPL).

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

doppler_dsp-0.5.3.tar.gz (6.0 MB view details)

Uploaded Source

Built Distributions

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

doppler_dsp-0.5.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (910.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.5.3-cp314-cp314-macosx_14_0_arm64.whl (739.1 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (910.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.5.3-cp313-cp313-macosx_14_0_arm64.whl (739.0 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (910.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.5.3-cp312-cp312-macosx_14_0_arm64.whl (739.1 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

Details for the file doppler_dsp-0.5.3.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.5.3.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for doppler_dsp-0.5.3.tar.gz
Algorithm Hash digest
SHA256 866220fb324fc90100ea6430f23ae8022691bfd7758824b2e10d5d12ef802d73
MD5 417da5756a5e59ff3506d9efd3f85761
BLAKE2b-256 b24659ab2a9f1bfb0ca95d3db294dafe897d337e5c19806f8fb39ceac4837c05

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3.tar.gz:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c7a63cff46add68037067d5b943569fdfb1e0032a67cd8f6026a165d72d17fb4
MD5 cf445fd6f01c78ec14701cf57f677064
BLAKE2b-256 60c9e914ced2d14bc8906a397e344b324e74e8f26708e70f788b948a77549169

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9c01d658d25cad62de74df3cf3af9640696f810683d1227a1f26438c50638fa5
MD5 9d689b4f4c9b5a742ab66d307eac2b8f
BLAKE2b-256 410f206e3323a045a84c6538593e9f0fb50cab538c712c2e39e517c5df72cc14

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ccf0ecde9bcf518bc1ab97cd551195aea76c1443f1303b168a70603e6648d4b3
MD5 e38e4830479b6a76eec2d460058abec6
BLAKE2b-256 ff684af95ccaedf33862abc5e527a3ce0ae350c2b2d55b6f4c8acc97d4d63b29

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d3fa15fe774dbdfdfd5bf441c0ba288ec49cb47a5735f2b2834c466fff1f0bf0
MD5 ce8df350807370bc2f43d528f6950ceb
BLAKE2b-256 6ad07255374c9271121bb5ea5000c58b53c7d3f359c247a8771306ebc7a97361

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fdb5ff1e820c1b150d4a7fcecfd47e7c8f7032cf0a1c821bbc5663016867a129
MD5 ddb5298972fc34757f7d5b375e65d373
BLAKE2b-256 436eac017240826c30e1a94a26cc3e0cc492d22195e53bae9ead254cd9f6a8ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

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

File details

Details for the file doppler_dsp-0.5.3-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 29575343446a59812b3a340c7f553228668f0d086d763e9648ad3369111ca431
MD5 9869d6e146f1bb3e40c73e497803bb65
BLAKE2b-256 cdfac4aa9db8b6882df64aa98c85bfaf58172634b61f5ab8491e7e778be492e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.3-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

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