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.6.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.6-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.6-cp314-cp314-macosx_14_0_arm64.whl (672.8 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.4.6-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.6-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.6.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.4.6.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.6.tar.gz
Algorithm Hash digest
SHA256 c29a9ee42b879df86e2e3cc8de08fe8857e675e37d59c7bc1affe303b988e9a0
MD5 58e7bfbdf8b7c2f3cc12f0a5355b26eb
BLAKE2b-256 87d36da74775d5311b4733a8be49c86f900aa9180ded0f96fd07ced418117d39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b47b10f0bef972fea7bac8f58b898e12630c20bca78f02414826f1140b94cb44
MD5 9239db6620de391b16a5db940b3b0745
BLAKE2b-256 e3c3ba00953ebfd3eef5c2d0f8a3e3f157b2f5b190d6539bae9dfaf40ce940e8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9a566085028f9a86cfc8ae0dc8aece5e619df11cb103ced9c28e15050a2a813d
MD5 4a4abafe02db5ba4da6aa00d660e0d8e
BLAKE2b-256 bdaa42a810ee1b0ee0af786b7f56ba8bfdb0bc7baf49118e201082d178c410ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 52bb1deb5a579116ab2396fd3cc191c9712fcda7a6695d46e592bd1161bd6805
MD5 f126004d01968b065c2129f92fd55cc6
BLAKE2b-256 b813557f67e81621d17744c6ec0d575ca4a1b47c8538d4e15804473b52f57a1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 69163ca51835f883db32d4b37917802b85b59c0c732407dfa35bbd322be589a9
MD5 e4217b7a590f847063412ec0424ac0cb
BLAKE2b-256 a84e5debff2cad429d739a3272348171fd46ab72fec3afef963584e115b932e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50b3019333f3ef16c4e1ef507f1de0cc2aade2469ca75cdb669377095bf9b37d
MD5 8d3da07fcde5abf00f08709072c74051
BLAKE2b-256 717958014389ff4a3ecd7a35fe99e4c49c866581e120d49bb783761d54e23167

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.6-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 42220ffae55344831d213cfc216374c3d01bef1c8873fb8c0462315001ddc2c7
MD5 52f09661f71fbe83c93debe2d080f71f
BLAKE2b-256 1005b88c89e646a738ce4fede6a8c32deb16e919d52ed0ee2e0748c270d5956b

See more details on using hashes here.

Provenance

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