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

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

doppler_dsp-0.5.4-cp314-cp314-macosx_14_0_arm64.whl (742.3 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.5.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (913.5 kB view details)

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

doppler_dsp-0.5.4-cp313-cp313-macosx_14_0_arm64.whl (742.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.5.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (913.7 kB view details)

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

doppler_dsp-0.5.4-cp312-cp312-macosx_14_0_arm64.whl (742.3 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.5.4.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.4.tar.gz
Algorithm Hash digest
SHA256 1a69556223dd8166fe1dd3369af236d3b72eabb788b65d0172f02953b95efa4a
MD5 7596d6d5495a053587f61c060d7eb316
BLAKE2b-256 75655af52a11b40757fc843be3d99326b17626aa8f71bea7c0f978c857dafa25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc12cb88397a8947fc707f17dfadd20fa436a6cbf930655952485603b41d59c7
MD5 2bbdfd8203ed14e65b5d5a402a5a8aba
BLAKE2b-256 6a90024568c5424d5938d1198be914e923e500285918c9e7e7eb6c59f8ae0886

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 70fca712210e47e70ac8d8b9a65f3aae4b326c559145a331b7d4f8e194ad8696
MD5 f3171b9c132ef9e63927a91157d5030a
BLAKE2b-256 f7bca168bdd0088cad4403936d4578d4fd49d454338d6fe32f7d4e3acd144db4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d86904f64055cae8c0203fd8b9cccd520ec48b3618e7473ca8dff247a479fc1
MD5 5bfe92cc43ecdd8a0225d36f981e7e9d
BLAKE2b-256 cfb166d3e32c337d51cb248d3f67814134021c91202020643f51725e4da05c1f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ab1063a512b8a24586a4ca6e4a8b6595024334d5915aeeacc04be65a9cd41d2
MD5 6bfef2b704a7529d929379e68bc6c29c
BLAKE2b-256 5fc00170dd11c7d42f4bcea0d776c89956e475d0442f9d0014578ce9ccd021d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4f0de830973fcfa2372690466807268f006888d8909d4cd7e291d866502ab80d
MD5 44c37f071763e3fe2b321fff72f2b040
BLAKE2b-256 737c86420927c06a67f91ff526e783627c878827347791bc89eb20bd75b80dac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.5.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3616f0b2e9dfc38d90c69b74f9901c9a78ee16052fdc170ccf869fcbb9a4c7f2
MD5 a13587d14f7e0b9bf37d444ba67b4bdd
BLAKE2b-256 fa3ec2ece59967bbab486f681a31144bd140102162636db2a5ac5edf9a933f3d

See more details on using hashes here.

Provenance

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