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) for double precision and arbitrary sizes, and the vendored PFFFT (Pommier/FFTPACK, BSD) for the native single-precision SIMD path. 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.15.1.tar.gz (8.9 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.15.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

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

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

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

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

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

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

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

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

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

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.15.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.15.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.15.1.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.15.1.tar.gz
  • Upload date:
  • Size: 8.9 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.15.1.tar.gz
Algorithm Hash digest
SHA256 3f8777fd7e2ff49d4cb1dab832bc00a85d4210f1a8f2f1f5a270d9f8208d0c7e
MD5 cf5374b4831a041791cfcc7d9c9fd0c0
BLAKE2b-256 a74bbd1a03a5a55201269f00791588eaf5a0ed29655974514246c2af36790a6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 066c8e014f1e61fc871339bfb3f6ca58993ca9e39dce18bc240bc3614f277d7f
MD5 0cc2e88f9a2a7756bd94ca8c1295fc5f
BLAKE2b-256 fc48a5b7df087de3b7e3a276c69be947d80e229b08dee5ea7b0841cc52caa830

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2fdc594d6a25c54c8f0dad4abd6ca5bd7a5415c497c62d6b3a7e46936ae1f250
MD5 0580a4ceb7862a0a0dcb779d8ec49a18
BLAKE2b-256 7a9ae4ae509d29084b5241eec711926643f3c7a9f6f9b934bfe0a1d14cb733e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96d378399dd4d7cc3a9b79017c704d101080b698f031415a4a813a3930374575
MD5 2a6e06b93909bb39759baf042bfe9bf9
BLAKE2b-256 47fa3dbe9b3a59c54bd287b3200e8d0894402e514af4f093a2c0174575da5822

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8b2c1d73f630d573b9948bbfd63f60277ffaa71b4857d168f6436663aefb73be
MD5 0b24e79a05ef2d381299caeb085ad885
BLAKE2b-256 62a15f26351d8582b42ce5987362b54d650dbdcf0196ee3c83a866dbaf4b48a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d0ff3724484f92393548b804524d0559d88cbfa059a2fbe6e1dbd111df78406
MD5 541812a076f7fb7f08211195c8d4f2f3
BLAKE2b-256 3434c9475de66be60c329f277e71eb3199c7072e29af3cfba74c60327fd9d4b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 566807b433754aee11ffc2da59bfc6b079a6c12cca9d92193588afa9f4687f28
MD5 3c4883720df2f7cb6535446f590512d8
BLAKE2b-256 4794ab9c648149b39c62152fc226aae41f02dfb5fa251bedf3a6007be5579e85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7909d9835349b7568467cc0364aced1f795b44afc23284c9cf19fcdf2f27075a
MD5 babd1bb31b863dfc8c7449ac67b22d95
BLAKE2b-256 0773374bca7dbf8dc8b81c749867e8ba8421147f27e9afea2f82b0320370b1e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d795b24569d0399ce5cde8670edcdc30715c4d933791b39a91406f6fc55e8834
MD5 9be43cd5fad85a8cd44a51b0701668e6
BLAKE2b-256 54a78f4a6fcd4bbbcc49fe1c614ed2e4501b2b67417dfd2d204838be8bb62614

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e6b0273407ea7c7e648998924db9709f87ca0f24a1626442d9d867ac2a6f163
MD5 1497c5dfdf32c279bc2a221907639c8f
BLAKE2b-256 7e09296350b4c6665198040b4f433c372ddd9acb2d33b2119dc589c5dc93db67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9d8160033ac0713c1b5c9bf13f03d5c5dea2c2d725d95933782b802fb5844c99
MD5 2bc7e40e05b9845ab801c73c248e7b37
BLAKE2b-256 d903cdefeec8c91c7c50b45be65684a389c6b466f1db19731fd25cc291817da2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b67f6a89a878592d6eceaf5d1eedb6bf8ba5bd7ea27b39e08f6bc3053769650f
MD5 5d78eb00fd37810ec87f07867a30f8f3
BLAKE2b-256 11de046d560c344c35c9e5c4dd3dabf9ccb7fd48c39654fa5468e7920cc62478

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.15.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 286020f9b0de616af345bdb7922eda948292b18b739f06b2348b3812c90fa2aa
MD5 47f3ba94423fb35cb6a9f9ae13558605
BLAKE2b-256 f622f11bac1cdb31269dbc76e9891f9c854564f142f4f18935650fce80d76db4

See more details on using hashes here.

Provenance

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