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

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

doppler_dsp-0.5.5-cp314-cp314-macosx_14_0_arm64.whl (743.4 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (914.7 kB view details)

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

doppler_dsp-0.5.5-cp313-cp313-macosx_14_0_arm64.whl (743.3 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (914.9 kB view details)

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

doppler_dsp-0.5.5-cp312-cp312-macosx_14_0_arm64.whl (743.4 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.5.5.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.5.tar.gz
Algorithm Hash digest
SHA256 a100a61ee7915bb10838a1b522de9fa511776f3ebb7654b1cb4116bde3a7ae1e
MD5 cd47eba9e53ceec3561a53dd7493301f
BLAKE2b-256 974a45155afd3e22aef9f0255e4f983c22d01341544b6d67df47d4e03e53ac3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9138fb09f0a5ac5e566d55a6b24594941ae0cf2bbcc6634ad9a8fd5ed16975a2
MD5 6b24a38ae492b046f6b90637e491d32b
BLAKE2b-256 1a8840cfe98ad69767cfd3ee9829b22270326fc805ebe2468e5805daf7813ca2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9408d6ba6bf5cf1d8486e4e639b943a4e641ab2c223933e54d43bff4b19d55d4
MD5 9651e362f0a8f2010ef670edd66c8236
BLAKE2b-256 b87e8e3d81b0f9894700169daf31b3a0f875ff9b63c7aea28023773b1078b7ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8cc26a098f73d7fff609b2495b37dbd9d836c09dcd5b81a997d9a00d976ef378
MD5 8fe1cc50e89a40632693414a79ef3ed7
BLAKE2b-256 bca52ad799a012b8cfa645a45b7f99a24ef7d627d48f002d678a780ec07653a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ea87de00f3a1876c974327207b9f03fb3c3214a782d4ae8b17dc6f871c71726a
MD5 e470c1213800ddb8fc88f3e3cbb2bd82
BLAKE2b-256 171977e5e262a23830cb658d72daea030f833e68c0fe63baaf4d9c392af2a48e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3efdfbb68cdb9066ae918ae7ab1858318e4063506932b74d95db27797b657bec
MD5 01a828339981cec2010e866fa94079d5
BLAKE2b-256 1970829ac844915399af0ae6afde26f9c4e221b8a49c1ff96a1a578941c58c06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 161c9185b21bcb50f1c26252ca60f563b58cf1b7834231bd609873d7a669e861
MD5 4ad956b14466bb927e54cfbdd6769f86
BLAKE2b-256 fc1c28e8055ea2621e6543be0b956a59baf2fa1c9a413a320791ae4c6b065ba5

See more details on using hashes here.

Provenance

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