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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.4.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.4.5.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.5.tar.gz
Algorithm Hash digest
SHA256 e24d6d90393d25363ce3bc72446bcc090294494cc18df8ee1281738a89bbc094
MD5 3c405aa76fabbcb30bf7658a97775f90
BLAKE2b-256 cad6d7be8ce9000af0aec0ece788f19900551f7120aa8ca7c86ba0fc2e4cabf3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2f62dbdfb3c52fea0fe3b573d1854af36270132aafc4c00ccc1d43e049e1302
MD5 14f311a8178ff7d37ec1e42b1ecd4372
BLAKE2b-256 4ee36a10fb7ce8e772897dc755527cd3017480103bbc092570fc3dce101b5f69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 72e31bedfc445eb6b40db93eb701ae312d06ee76d097ee4179551dfbf1ff956f
MD5 077b35be4c1548f5ec90471d390c8fc8
BLAKE2b-256 70751f93e0bae73a46d6e93355670ebe910182927d93b444f6c50d892f9d9f04

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3551c903877fc6b4d7c89d9a452f0857babbe1179ba80dc104be0db797309789
MD5 a6ed70e25f66bd980f4a5a0a54db078f
BLAKE2b-256 9f94eb0235ed86fc0824a4415c38f4dea0ea096ff9c81be0529be60d0420fc4a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 49369f3743467b27e217b67a636fc254031464da3129df135b1febcaf0d82a49
MD5 e4e0a3990695b50f4a438bfa71fd0984
BLAKE2b-256 2d1fcfbd56ce1767cc09b26303d96637bbd5b0a990f826d3cafef4151c058066

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 410d5722d5034db7e82fb13731304333ffba5e7947bd85e8e5c88a147d2c5f95
MD5 9bac550cbb81445e11b643cab3ee2bc2
BLAKE2b-256 eea12cb1a4f79d99638c33e768842a47c78a6d0d3972819b6e6c857b9d5f9d94

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.4.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 18540f31516651c588f165eef36324bf4a8e4e81a571d3df7d47cf0ee751d829
MD5 fa9d4b169be62fe2159ccacf502adaaf
BLAKE2b-256 3753375d37e5f1659ad899bf93e1ace1588a8170ad44fab4bcd799124827455f

See more details on using hashes here.

Provenance

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