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.4.4.tar.gz (5.5 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.4.4-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.4-cp314-cp314-macosx_14_0_arm64.whl (672.8 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.4.4-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.4-cp313-cp313-macosx_14_0_arm64.whl (672.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (847.6 kB view details)

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

doppler_dsp-0.4.4-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.4.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.4.4.tar.gz
  • Upload date:
  • Size: 5.5 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.4.4.tar.gz
Algorithm Hash digest
SHA256 dbe517ad1a929fdc1bd8b898d7bcdf61769b51ede46709eb25f949acb7240ead
MD5 f6d3fc585bcfc555aec3b7f3ac971b0c
BLAKE2b-256 cf21b8e8dc381f9aa5d5f4cb78bc45ac02dc4b1e86b69ce263ea3c31958aca25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b996e220a2031ee9a8ff66bfb0eaa334757a6a8c0bfa33179a6cd11bb21be758
MD5 228daa525ae1ab8ad87d885ee35f953b
BLAKE2b-256 3d98d704dff9341616e504c4b2ef266f9e667e693d7cad8e65e8bc216ad5dc5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 554f2011867aec975a3cf7c497e450a06824d34edd0d81aa4869d3c75a1b6623
MD5 10609c5098e818fe737623c0aba46bb1
BLAKE2b-256 23a1f38f2145bfba24a227c5248ffff08fb81459ad2dbbe787b83baf3b4dc104

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 83792c33595171be0a29cd00b0e2dc8802b86b3ba31155ad0bb1d660eac63ee1
MD5 d074b3874d95b4141181cbff9ffd3a40
BLAKE2b-256 088fd6e92f67c5b8c31e5c05c6c3559b83f8559b1070073c2e1fa0911c317a63

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 08777f3fba619bec583327be21d43e7963bea1765a627a2f93e9f86560a24bce
MD5 5c909eddca28807cfd5f8d73e77a374b
BLAKE2b-256 342a943ba07f6997dee43d5628ec8457e1de6d8968061662571b2e459541e2c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f1d4ea800bc06304030029fac31ab42744cb73bf4ce4c83be02d0a8010dbfff
MD5 837255d37174d8a8ead185f449233be9
BLAKE2b-256 66cd946c130959e1122b08a34250aa1c002910e88eb64c4be9819bc1c9d6711a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e7e27008f6c9c8ce1967321ecf65dc69503764643276db1a9d6febc3e4444eca
MD5 8fdbdfabb4f141c6a5606c40ed7016c7
BLAKE2b-256 6fcf40cdede9ec7d40b8e927c8a27c4a737b254f2ef3a7a7ea49f02c9cfd1e60

See more details on using hashes here.

Provenance

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