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

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

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

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (931.3 kB view details)

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

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

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (926.4 kB view details)

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

doppler_dsp-0.5.1-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.1.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.5.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0b246282a86b4c30633b1e727b348f528e3429bd3efb5772a1369f5e653fc1f8
MD5 cd3abb169c435b96d52b958e9d8f079f
BLAKE2b-256 eff76921d474cbf7169819651f358f186e80e0ca394fe367fba0acfbfacdcbc2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7524b696cd69d72d998122d28b54066c62c0075aa8efcb91f35b513d01dcbeb
MD5 c91d9bafa0f932526459bbd21ad30381
BLAKE2b-256 7e6d0e3e8411dd1f3d6ad5b3b6ea37d6f948d57ebd11b1c29845ea8e06897171

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ef4cc4d2dda69f74d543252f24a4e9fdcf5a0c9d9ef7dd1213bfb80435420bb0
MD5 3b6d55b4d39114e36d3d39d31269e0ce
BLAKE2b-256 33e4b60e3fea30674230107d5d28e6ae8359ce5f7521801824410ab459544d40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ceef97611f91429c06cb25a12765ecc568f32428654eddce52ebf2d947cdb521
MD5 b91c1a0f5cd1ca3c4315017607d9069f
BLAKE2b-256 aba0bfc9a4a138ab1615a68f02629af9d4dd2f75a0e8b5416e8734dfd7a22173

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 36cfcefeceb46e5ecbcc3503e0ba77a26b636fef14ebd80ac23119106ddd2777
MD5 43154415005a1f415a253b94afa3a692
BLAKE2b-256 8f6704486b28324e514f2dd1dbf1e1caa95dc7f998369b9f5c72012ab2bde26b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50e46aff11c18b5a7cd01a8cffdfb68fbd7dd4228a6f38d2fb362cfb1a1fa798
MD5 985b1edba1f08fc457c3c5348eae9fe2
BLAKE2b-256 91777a8a699e4f4b0a01f0961a7d8dcfe46701da105a97db24e960930fc41118

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 85ec7968084b738f042570e95b1a1879fe7eeb8cd47621d5f082cd444a5065f6
MD5 4e3f72d07cfbdc594234e32473e0ff24
BLAKE2b-256 11f5c0d9a7562da8493bdb1ab4905b8a227e42b4f615f9cf92e97641c3833aef

See more details on using hashes here.

Provenance

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