Skip to main content

Dead-simple, ultra-fast digital signal processing.

Project description

doppler — signal, shifted

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 = np.random.randn(1024).astype(np.complex64)
X = FFT(1024).execute_cf32(x)

C

#include <fft/fft_core.h>

fft_state_t *fft = fft_create(1024, -1, 1);  /* n, sign, nthreads */
fft_execute_cf32(fft, in, 1024, out);        /* in,out: float complex[1024] */
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 core C library is pure C99 and links only -lm; its FFT uses the vendored pocketfft (BSD-3-Clause). The optional ZMQ stream component (libdoppler_stream) vendors libzmq (MPL-2.0).

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.14.1.tar.gz (8.8 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.14.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

doppler_dsp-0.14.1-cp314-cp314-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.14.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

doppler_dsp-0.14.1-cp313-cp313-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.14.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

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

doppler_dsp-0.14.1-cp312-cp312-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.14.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.14.1-cp311-cp311-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.14.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.14.1-cp310-cp310-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.14.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.14.1-cp39-cp39-macosx_14_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.14.1.tar.gz
  • Upload date:
  • Size: 8.8 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.14.1.tar.gz
Algorithm Hash digest
SHA256 070b0c59b760bf9aaa05affefa7b06492b186d22d4e7923e437a31961ce770d3
MD5 282abdd74af735f8916fbbd17d06cd88
BLAKE2b-256 59bd5909d72390c150e588dcb9cd00e82118f8da339f354229e1fbcddd9b5433

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.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.14.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f0079fc6ebe84df4b84312a94b0831bbcc590847d849f5e32efe2f62ac9c273
MD5 9ac5559a8885247d8f4c0e1cf3afc7ca
BLAKE2b-256 e8ea53adf3af17d2ee92ceb63787c0b839caf2784c99a6227b73e73139760ddb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7ddef9ec0d30cc7c1a6aee6d84c185e0ae712bbd423b4c421d927080cc918e59
MD5 57f79f245a4b9e486a8d6fc0701775f8
BLAKE2b-256 e1973da3e6106f5f8f920fdf81cd45b297a492d84f5ce6684a26095c802181a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.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.14.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d85ed7651ec52415bee37cab2f03751a160463540e2be27388f22782a178621c
MD5 9333a752546f30fd1a8dae74d26dfa88
BLAKE2b-256 5d6a17a43d64098f8311922b4ed0ce547972a1078eaacc3c3a111a4f784132a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d388e2e5a28b3788d0a014272b4a40f64e8ed24ba064f69996aebc303a74581b
MD5 be6117d16b48e90756da3ce0f1fa5863
BLAKE2b-256 ddf3b166ac9a5bf6a150f7854a969fa419be1984c9c7882b386fe16e487b89c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.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.14.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e106f188e948b50585941d0c65e8d38721259cba9391fa3acb5017f99074c10a
MD5 34afdfa937e020ec6b5bff1563ede9ae
BLAKE2b-256 db68ca5afad606c7e6840c9ac7c1d851ffc738d8356a27b678665888cdd734bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e9e70de54c3714670f5b8d28152d78f76862d9c5a2557dc48bb0c51e7378ead1
MD5 4f2cc6a8946098dbbb6e6a68ea6edcf6
BLAKE2b-256 6b901504514584095c60297ca3addcb91af0a03625aab826efc0cad0bf32c373

See more details on using hashes here.

Provenance

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

File details

Details for the file doppler_dsp-0.14.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23e971a47c5bc0a239624d628345e6367b39f81a19eeba872bcd53c0d17afae9
MD5 909c81fe2f3f284cbbd12460b687cf25
BLAKE2b-256 2c8dac490e6848693e5db9d6542d0e414624e25d6a1badf5754ab02843fb8798

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.1-cp311-cp311-manylinux_2_27_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.14.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 336c87a2e1ea7411aae48d0e996fb50075956e170392ba3596c6f0eae4581dd2
MD5 33e0ca2c61a6243a4de235aa4943b18a
BLAKE2b-256 5555da0e3bfd3223d7ec070d59e018e23deefe1118a339673821301cf8d7a448

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.1-cp311-cp311-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.14.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9c01933f331118d8331052b8dbaabd6fe511f47c6c82de6ac38644f4741b158
MD5 1cc3f0c68a8d37aaccc2eaed476af6eb
BLAKE2b-256 41bee08d8290b07d68defc6c69665dc49b2788e6838d17940013f611b1afcca4

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.1-cp310-cp310-manylinux_2_27_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.14.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a280acc0bbaf9809efb6ee7c027855228d9bcbaa8f00cc4af908d69508cc58d9
MD5 f4d0d97a5e29726f8ac1932d0c37c733
BLAKE2b-256 511e8133bcd7e9ababbffed42ab0612b1dbb44077ef88931052860665c75dcd3

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.1-cp310-cp310-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.14.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4ecf9cc9a4a2b7ad38e3d255556ed9cb5eb035828d66cdb37e75a381d4083b7
MD5 f8d45200791b0aab8f0e499cd86c7493
BLAKE2b-256 f66e41595f7d0e30640450ee0f84110728e1521c3e5aebb5f395732b340dc476

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.14.1-cp39-cp39-manylinux_2_27_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.14.1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.14.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7f0ee9627a7ebe1a617e5a60591462018d575a2d04ea7e26327b0b6ca9d31712
MD5 31dae02f54742cf9bdcc320c336df80f
BLAKE2b-256 e90e5887876da6c625c1be0b0a9b4e26862cdb19bc932b98be8608cc9ba7cbf9

See more details on using hashes here.

Provenance

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