Skip to main content

Screamer

Screamingly fast rolling statistics, technical indicators, and signal filters for time series. One C++ core, two languages: a simple Python API and a JavaScript/WebAssembly build, producing identical results on batch arrays and live streams.

License Python Versions tests Docs PyPI npm

Screamer runs in Python and in JavaScript. Both bind the same C++ engine, so a computation in one language matches the other to the last bit.

Why screamer

  • Fast. Every operator is implemented in C++ and routinely outruns equivalent NumPy and pandas code, often by a factor of two or more.
  • One API, batch or streaming. The same operator runs on a stored array or a live, event-driven stream and produces identical results, so code tested on historical data deploys to production unchanged.
  • Causal by construction. Output depends only on current and past inputs, never future ones, which eliminates look-ahead bias.
  • Batteries included. 200+ rolling and exponentially-weighted statistics, technical indicators (MACD, RSI, Bollinger Bands, ATR, and more), OHLC volatility estimators, signal filters, plus stream operators and composable pipelines.
  • Python and JavaScript. The same operators and the same pipeline model in both ecosystems, from one C++ source.

Python

Python 3.12 or newer.

pip install screamer

The wheel is self-contained (a single abi3 wheel per platform, no build step and no runtime dependencies). For development setup and the example notebooks see the Installation page.

Fit a line to each sliding window of 50 values, take the slope, then its sign to get the trend direction:

import numpy as np
from screamer import RollingPoly2, Sign

data = np.cumsum(np.random.normal(size=300))

slope = RollingPoly2(window_size=50, derivative_order=1)
sign = Sign()

trend = sign(slope(data))   # the same calls work on a live stream, one value at a time

JavaScript

Node 18 or newer, or any modern browser.

npm install @screamer-labs/screamer

The package is self-contained: the WebAssembly module is embedded, so there is no separate asset to configure. The WASM loads once via await ready(), then you call operators directly:

import { ready, RollingPoly2, Sign } from "@screamer-labs/screamer";
await ready();

const data = Float64Array.from({ length: 300 }, () => Math.random());

const slope = RollingPoly2(50, 1);   // window_size, derivative_order
const sign = Sign();

const trend = sign(slope(data));     // a number, a Float64Array, an iterable, or an async stream

Operators compose into pipelines:

import { ready, Input, Pipeline, RollingMean, Diff } from "@screamer-labs/screamer";
await ready();

const x = Input("x");
const y = Diff(1)(RollingMean(3)(x));      // compose operators into a graph
const p = new Pipeline([x], [y]);
p(data);                                    // bind data at call time; p.live() streams

Documentation

Contributing

Contributions are welcome. See CONTRIBUTING.md for how to set up a development environment, build the extension, run the tests, and open a pull request. By participating you agree to abide by our Code of Conduct.

License

Screamer is released under the MIT License. See LICENSE.

Metadata

Release files for screamer 2.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for screamer 2.5.0
File Size Uploaded
screamer-2.5.0.tar.gz 5.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for screamer 2.5.0
File
screamer-2.5.0-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
screamer-2.5.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
screamer-2.5.0-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
screamer-2.5.0-cp312-abi3-macosx_10_13_x86_64.whl CPython 3.12 abi3 macOS 10.13+ x86-64 Details

Total release size: 8.8 MB

Release files / screamer-2.5.0.tar.gz

Download URL screamer-2.5.0.tar.gz
Size 5.5 MB
Tags Source
SHA-256 checksum
How to use checksums
09846b9a2232c196e9290f727dd1298a925dacb06b20b98d400b6ed4ae7695e6
BLAKE2b-256 checksum
How to use checksums
28c93f5b5f89b6e9f9434953fcdff8cf5e62ebb262a9129d0f2e06a727b98679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / screamer-2.5.0-cp312-abi3-win_amd64.whl

Download URL screamer-2.5.0-cp312-abi3-win_amd64.whl
Size 782.4 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
86cb90e3ebf4552e57bab3c1c8911228c318844e757b38bf972dd4db0a26415e
BLAKE2b-256 checksum
How to use checksums
d72358c299b5cb972bf1b7ec714819eb710c849e3132352667363245c45bcf0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / screamer-2.5.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL screamer-2.5.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.0 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
11a15fbce69d52c94e91e3be6007930eb2f699d771354a222ff3ce03888b61ab
BLAKE2b-256 checksum
How to use checksums
c64bad4c192659d9402507ff127b2b48a49557a9509ad8ec1ce352e8ef678c35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / screamer-2.5.0-cp312-abi3-macosx_11_0_arm64.whl

Download URL screamer-2.5.0-cp312-abi3-macosx_11_0_arm64.whl
Size 727.9 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3574e33099049d52ba2175ddb47dd6d2e6e3e6be6a18fe96fbdd343036c1c6b9
BLAKE2b-256 checksum
How to use checksums
0fca6dd7b2686d835aa82eef96878794275d7132646ae00e3e8a5b4879d4b3e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / screamer-2.5.0-cp312-abi3-macosx_10_13_x86_64.whl

Download URL screamer-2.5.0-cp312-abi3-macosx_10_13_x86_64.whl
Size 800.6 kB
Tags CPython 3.12 abi3 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
66826e24ce59a46f07427ab238df0e292a25fee6626e6bdc3f6289c102064776
BLAKE2b-256 checksum
How to use checksums
188d720baa3c61f867e11ae6f599a645ff1e1ee8d098e71f042c876c010d0120
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page