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.16.1.tar.gz (9.1 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.16.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.16.1-cp314-cp314-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.16.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.16.1-cp313-cp313-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.16.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.16.1-cp312-cp312-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.16.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.16.1-cp311-cp311-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.16.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.16.1-cp310-cp310-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.16.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

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

doppler_dsp-0.16.1-cp39-cp39-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.16.1.tar.gz
  • Upload date:
  • Size: 9.1 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.16.1.tar.gz
Algorithm Hash digest
SHA256 7773575908ce74cd5259999b63d1b3430e378fe58cd800ee5b2af31de9d334f5
MD5 6b25594af2e9200e035edd91f9497a86
BLAKE2b-256 4c27b9ca565566aaab6fbd7e1cfd676d24fa892a9912a4ceb61c3a6cf5e60f8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f087d462d5f76b7c26e0dcf0dd65b44fb224fea47e7981862e9c669207daecf
MD5 35290eadd2736f1e48e9ee15cb5f2638
BLAKE2b-256 584bd2aec0543069f9dd8d3c72c4bbd7b7bb77238c1c7ead5ef2fa28e22839b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 832ecdea599a4ae54ef49a3d2ab8d0a0c3e55cc21884af9ade45f3653abf6cf4
MD5 05e4ba418cb13641e74d830946c21a6d
BLAKE2b-256 92e19002f1af62585ace3c2c9cad6fd9a5ccb35d3db4d87176a9d0744c641e4c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ed998231ecd3e746e9a5dd580adf7c28520388ca675b1ea5079f37666b74a13
MD5 6eb29836e73b2dbb6cf43d46b52a062f
BLAKE2b-256 a8127369a2335810e78af3539ddef9ef1f93f2c5243c038fe204671464a546f3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0d682907fcc651aeec8bb8fe30e66daac6c377ecd925b98f90412dc731755e03
MD5 e5608348e96db3920e99c5400bcf492d
BLAKE2b-256 0b31d5403b1734ecf30ee3bf712a3d4bf27c94fc2fe8b19f50a152afbd0076c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6fcbe9821b8bb38e48d5ba860a3c587010b6bf1c601d841f09eaa4546f2217d
MD5 8c20f91f2fc78519291eb867f16abe67
BLAKE2b-256 bcdf523081cb4bb85ffd38e7870b8996e28e9ac34118aadabcc13b44bcf01895

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ea63a23024ba2b4fdd0cdfff8982efd9865b9d320bd669a6a43decbe944f7a21
MD5 1cc1c832f3864cf4371ac6c474c97d65
BLAKE2b-256 fefffcfd4c10ec9e2c359d0be0f6ef3da37ac7589617cae9b439384e1f97871f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 718ba13aaf59706f835b5568dbc072142954bd763332c5509b8963f0b17e5d9a
MD5 2f1b176b80f4c702e83fcbbf10cd7bcd
BLAKE2b-256 a196b2a79863407d6e2ca852be972b0041ed4ed23256bafe6896d8edb20c640a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 19ac760c0568a12b4dd09a950ffd7076b884adc6f793ee363741d58024c2c810
MD5 83513f46f7bf20db97ad4af3938149cc
BLAKE2b-256 145f85dba8923a426553c1ced40e58d9c1a6764da15bd5f6c3d564d4a63237c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7aac51fdca3a17c9aa36cbc414b348b2939fd2e875488a925a82cb6e1ae1ded2
MD5 fd88a4239b81039ed5aec28b12e51e01
BLAKE2b-256 5776e6ce7369d148160dbe30a4f1e782422fa63a4a11cbf315924f7a4dec0f8c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 343db2c730858b3e1614cebfae0ca2aadd4e2f2d0a6d6f853fa2a5efd32e8bc8
MD5 f075b25991ee9a9da55cde257f0edb50
BLAKE2b-256 932fd9bf575196983a094ac35bf03101d893fe7bcdc71d9b6752d499eaa3077c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 256a9fb11251f7d76d7fe705b14946472eaff0b025f1ce2276ed2d70b7e8e54f
MD5 8bdcd604f92ce7453d1dba1744bd12f7
BLAKE2b-256 9f63e99b5248cdeb8909a3bcc34842afc868a8db9067bb8032067ae7bb623b1c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.16.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f895c18baea588bba4713b2bf50bf3e521f828fbeca5a61509d849177a7d6ce3
MD5 6b6093e139c2dfeeac00766510150950
BLAKE2b-256 40340d2f9c2c4bb2dd9b25229f84e7446e37810b7e055b6824933ef643804956

See more details on using hashes here.

Provenance

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