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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

doppler_dsp-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (847.6 kB view details)

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

doppler_dsp-0.4.2-cp314-cp314-macosx_14_0_arm64.whl (672.8 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (847.4 kB view details)

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

doppler_dsp-0.4.2-cp313-cp313-macosx_14_0_arm64.whl (672.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (858.2 kB view details)

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

doppler_dsp-0.4.2-cp312-cp312-macosx_14_0_arm64.whl (672.8 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5663f47fed08541bc87c3827530acbea246620fc77b73ab60c33c2af8c6dd31
MD5 5a5f4aed5158e17f54984420ff994f07
BLAKE2b-256 5bec6b829698a6b904810ad4d6bc70b25a935981849333fe88572f2be32e212e

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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.4.2-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1f4f2fa78635ae741b0128c1733999bd6cd5951cc7b660f7323e6946066fbfc2
MD5 9b0ded99b2318ed035b9f64a04635942
BLAKE2b-256 c3d078765596eedb6c9ea35568b66e6d718e934a1a8176f5cb7d7a4300b4155c

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8f9f8de638f34bdd23ed74d9889e22449eb2655dc89667ccd5fb4695056f167
MD5 cc0588051267145fad74e11ab125b28d
BLAKE2b-256 7579399462abf6ee61554bf59f61539a230424726832d865040e2cd83ebac5e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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.4.2-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 acbff1dbb5515b1303ce30032fa117dff73ff4ae9ecc096f0d8e5a0ff566c349
MD5 252af30471d3ba84eddd75975d72e82e
BLAKE2b-256 0521cd2ae1c30bc50c6652ac9cc72e32efde8df9432bcb5cb374dfaf38d48c40

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f18e91a352cac75861d9db9565cf21d9f6bad21bf847c8ccc9dcff0a6320ad4a
MD5 b9addb23c7f8997fb5e15e74d585254d
BLAKE2b-256 b971385538924958afb844565db261e7a59e0f1ab3ca0e14a40768045dc2e88a

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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.4.2-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.4.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1bca55045aaa09e1016b68ba152e5535d4ad57e2f483e202150d8ce23268ffb4
MD5 255619cf6af31757de6a42710517a324
BLAKE2b-256 6b68ecff20f6c6beadf17f67af91cced8e712dd4ad1d72b5f13e6c83e3324c72

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.4.2-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