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.0.tar.gz (5.9 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.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.7 kB view details)

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

doppler_dsp-0.5.0-cp314-cp314-macosx_14_0_arm64.whl (719.2 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.5 kB view details)

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

doppler_dsp-0.5.0-cp313-cp313-macosx_14_0_arm64.whl (719.1 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.7 kB view details)

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

doppler_dsp-0.5.0-cp312-cp312-macosx_14_0_arm64.whl (719.2 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.5.0.tar.gz
  • Upload date:
  • Size: 5.9 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.0.tar.gz
Algorithm Hash digest
SHA256 8d2635f292e0f1de5f9286a79a46e490413b355255a9168da33efcc364f91640
MD5 a6e352439035db2d88103294c6f69576
BLAKE2b-256 cccc9f2be6876ab29eb9e87776b49f1eec4ceb3e14d1b303f4d79926260e442d

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.0.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.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4aaa86e2033b7c94f0341377aff412c304d9a871b93f9d9fe0665847f36bff6
MD5 7fc541db2b4e222762d38b1f343ed78f
BLAKE2b-256 173d4e1a583cf1a307fbfd75d8d7a4e184878f11db0cea646ad83c9d1879efb4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a4fc223f9a3697982f6d76e7b915661f8dce8b8a98982c3c78655043f7bda6a2
MD5 40ea68cc8bfded2aeb259277f91b90a0
BLAKE2b-256 99eb820c0471e77ed261b15eebcd8bd841b67f1947ab1750eda48e203027f0e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.0-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.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 443fbb34aca67a2487ebccd1d06a9fa1ebb5cb9efe1d27b4f7a1b814aa52c304
MD5 cc03f14095f5421685d679cc1e7210ba
BLAKE2b-256 2194cd52799faf285d4b8add9aad7fbb69c0d065b636364d3d2305bdbc8352a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a1052ccf7cca312ba60c94485e56fee51d519062f4f28f032907b12e8b9601a8
MD5 6e67a294b8d8f30de3f5eaa5b97d2ded
BLAKE2b-256 fbe52b7fe1bf2afd790bcd30a6f04f07e4fcfa2d2307c57c3a43b5f667097fe0

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.5.0-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.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 882a74017d58807eaf36a6e99f842fb10ae35903b0902489254cd171c58d728b
MD5 13bbbb6aad78b80499ce4ccabaafb850
BLAKE2b-256 695d726932d08276914e4597aa5d80602148a5c74be4184d4466b1bcf2d96525

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c5395c60455714a8e26e08c3b0b6a4e198c092ab56b64a98a4078aaffaa54b7a
MD5 fd7f991cc26a3c0ec8e0046f86148a08
BLAKE2b-256 c73f04ce189cd4354c9ab4fb6df62fc3e93226ea789096992e7c83d805da6b8f

See more details on using hashes here.

Provenance

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