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.2.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.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (907.2 kB view details)

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

doppler_dsp-0.5.2-cp314-cp314-macosx_14_0_arm64.whl (735.8 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (907.0 kB view details)

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

doppler_dsp-0.5.2-cp313-cp313-macosx_14_0_arm64.whl (735.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (907.2 kB view details)

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

doppler_dsp-0.5.2-cp312-cp312-macosx_14_0_arm64.whl (735.8 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.5.2.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.2.tar.gz
Algorithm Hash digest
SHA256 edeb29a0dddcb62c83675cf22a3e0a8d79c7f9f7dc6cd7aaf0046992a8c7c25a
MD5 799cdf0ecd5c42d09ad3a7da6207c6e9
BLAKE2b-256 10a1bf838ec641cf2efca3ed9c6c163c13e89031510cb690dcfd51a00600c2cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.2.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.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b408bbcf67cd56acfdfec5dd7d6ff3198ea5369afac6f96cb5570bd5db462261
MD5 91f39175bed43a0125d5e8b255154f20
BLAKE2b-256 476c1918ac6572f910a06bab6df12d42848cdc4362d5f6ea265ca1cf3abb8188

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 03f717adee9472d403f73568319b1d6c4e60a131bb781569771ec06535404d80
MD5 9da61dfe065bf07aeb9c2581e652ed27
BLAKE2b-256 2c92253341cb034cd4833b7bf854a8875d5a2f55726b7b09c974c14cb971b642

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a630b6d204e6359ff375e52acb6f31a43aacb8c14b9a501168f292ee2b9cd895
MD5 679438221f4be70b5d73a45d20006f1e
BLAKE2b-256 b17bfc923eefe8817da9a60735f2a788968a1666e7ace9962730c27da36e19c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c7486a5a919e0fc15796a93e7fde8b37165ab4f03e0e2c2c5d8fb7d1b62b8499
MD5 0afb8dc40f6832b85ceffd4f33b43db8
BLAKE2b-256 62c0048c0e612fc57259097bf47021a53ccc66f0cb14a0d44b4155c6e9da3a57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64f7f4ed8f665d4c387da990ddad07401ac151cf98819f08b2dca29d92c474eb
MD5 337506ae3465d83a4f53122897e32b77
BLAKE2b-256 cc495bf11642dd177047aa330d261540bbdf4c0f79947c36474ecf90e1662fcc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5711da388f3ba84cb2edbf98b6ebbda98ff3ad3a5b852e7f0aee5795b487e1a5
MD5 15d1c2392c32891269ed924bb11b3222
BLAKE2b-256 c08e20e72e57555b506ddfed0874a5cd7cb6868d4ac63fa75c04f725e369a9d8

See more details on using hashes here.

Provenance

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