Skip to main content

High-performance Rust-based technical indicators for Jesse trading framework

Project description

Jesse Rust

The native technical-indicator engine that powers the Jesse trading framework — written in Rust, exposed to Python via PyO3.

Why

jesse_rust is, to our knowledge, the fastest technical-indicator library available for Python. Indicators are implemented in native Rust, compiled with full LTO and opt-level = 3, and called from Python with zero-copy NumPy bindings. It is consistently faster than equivalent pure-Python or pandas-based implementations and is also faster than numba-accelerated versions of the same algorithms — without the cold-start JIT cost, without a runtime LLVM dependency, and without numba's per-call overhead.

  • Native speed — everything runs as compiled machine code, no JIT warm-up.
  • Memory-safe — no unsafe blocks in the indicator code.
  • Zero-copy NumPy — input arrays are read in place via PyO3's numpy bindings.
  • Drop-in for Jesse — every Jesse indicator that needs an inner loop is routed here; you don't have to call this library directly.
  • Cross-platform — pre-built wheels for Linux, macOS, and Windows.

Installation

pip install jesse-rust

Requirements: Python 3.10+, NumPy 1.26.4+.

Usage

You normally don't import jesse_rust yourself. Strategies call indicators through Jesse's standard interface and the Rust backend is used automatically:

from jesse.strategies import Strategy
import jesse.indicators as ta

class MyStrategy(Strategy):
    def update_indicators(self):
        rsi   = ta.rsi(self.candles, period=14)
        ema   = ta.ema(self.candles, period=200)
        macd  = ta.macd(self.candles)
        bands = ta.bollinger_bands(self.candles)

Direct use from Python is supported too if you need it:

import numpy as np
import jesse_rust as jr

source = np.asarray(prices, dtype=np.float64)
ema_50 = jr.ema(np.ascontiguousarray(source), 50)

Supported indicators

99 functions across 9 categories.

Moving averages and smoothers (29)

cwma, dema, ema, epma, frama, hma, hwma, jma, kama, maaq, mcginley_dynamic, mwdx, nma, rma, sma, smma, sqwma, srwma, t3, tema, trix, vidya, vlma_inner, vpwma, vwap, vwma, wilders, wma, zlema

Oscillators / momentum (20)

aroonosc, cci, cfo, cg, cmo, dpo, dti, fisher, fosc, lrsi, macd, mass, pfe, rsi, rsx, srsi, stoch, stochf, willr, wt

Trend / directional (11)

adx, adxr, alligator, di, dm, dx, ichimoku_cloud, safezonestop, sar, supertrend, vi

Volume (7)

adosc, cvi, efi, emv, nvi, pvi, wad

Bands / channels / volatility (7)

atr, bollinger_bands, bollinger_bands_width, chande, chop, donchian, keltner_inner

Ehlers filters (14)

bandpass, correlation_cycle, edcf, gauss, high_pass, high_pass_2_pole, itrend, mama, pma, reflex, supersmoother, supersmoother_3_pole, trendflex, voss

Candle transforms (3)

emd, heikin_ashi_candles, qstick

Statistical (3)

damiani_volatmeter, hurst_rs, linearreg

Utilities (5)

find_order_index, moving_std, shift, subtract_floats, sum_floats

Building from source

You only need this section if you're contributing.

Prerequisites

Build

git clone https://github.com/jesse-ai/jesse-rust.git
cd jesse-rust

pip install maturin

# Develop build (installs into your current Python env)
maturin develop --release

# Wheel build (outputs to ./target/wheels)
maturin build --release

Contributing

This package is part of the Jesse trading framework. Please refer to the main Jesse repository for contribution guidelines.

License

MIT — see the LICENSE file.

Support

Acknowledgments

Built with:

  • PyO3 — Rust bindings for Python
  • Maturin — Build and publish Rust-based Python extensions
  • NumPy — Numerical computing in Python

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

jesse_rust-1.2.0.tar.gz (59.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jesse_rust-1.2.0-cp313-cp313-win_amd64.whl (329.2 kB view details)

Uploaded CPython 3.13Windows x86-64

jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (393.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

jesse_rust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (371.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

jesse_rust-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl (419.0 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

jesse_rust-1.2.0-cp312-cp312-win_amd64.whl (329.2 kB view details)

Uploaded CPython 3.12Windows x86-64

jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (393.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

jesse_rust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (371.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

jesse_rust-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl (419.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

jesse_rust-1.2.0-cp311-cp311-win_amd64.whl (330.4 kB view details)

Uploaded CPython 3.11Windows x86-64

jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

jesse_rust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (371.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

jesse_rust-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl (420.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

jesse_rust-1.2.0-cp310-cp310-win_amd64.whl (332.6 kB view details)

Uploaded CPython 3.10Windows x86-64

jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (427.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

jesse_rust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (371.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

jesse_rust-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl (420.1 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file jesse_rust-1.2.0.tar.gz.

File metadata

  • Download URL: jesse_rust-1.2.0.tar.gz
  • Upload date:
  • Size: 59.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.0

File hashes

Hashes for jesse_rust-1.2.0.tar.gz
Algorithm Hash digest
SHA256 358a9719a84f6c3f1f16c797157f9c57b2848f96349d3f1d9dfc86f4cb923560
MD5 041c9b0cb9b11028cd31ed2d811549f4
BLAKE2b-256 e280c80cf3de5cf13aef1561dc2030843de214cdf0914fece8f7d47552889c7f

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8640339272e2728c27e2649e573624ff6ed75d491d8d2c46de5742128ae2c6a4
MD5 40ce4b2d83c5a1e909c10672a1b3e6ba
BLAKE2b-256 1977415b944b4fc3d94ec174bcaa3e223fd825e065de594ce1764008c27053af

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 440e7bdedc899a0fd6fee6337cf6b6dcf48c86b8c72a3f123c3bee7579a0748e
MD5 7bcf4a7cab74ca6e2f55c563f7e1cd11
BLAKE2b-256 7f85b39fcde30412329f71f1cd977f5f188b173f18544d338804fae661262d15

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b7bc59ed3ac8f78ed349e208073bc9eedecebcdb445eeb07c001b16fa6711e4
MD5 1a17697f2d2b1a6f3aa54c1814283968
BLAKE2b-256 0eb7a5c0039406dc67278a6cb19d25758c24250bb0f9802d2ea1ecf4831346c9

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edef993d5acc20ef0ef85575f4f3e2545d8c5fb9307710be7ab8ed195dd77a24
MD5 e9da54f37d60404a2f2986a9e71e853c
BLAKE2b-256 84e2a356872fb885bacc9ac6f3f62b28b4d5537ca447ce346fce3d45898233d6

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 46af29b14336cb4fdabfbd729d3c2790ddb70f1924fcfc63192c160fffa48b66
MD5 57ea84dc83f957e9850fd9922bb6d5a0
BLAKE2b-256 fb379101f21c44bc7dd242be48b17bc722d84518bf5dacf0e0af21373ee7e53e

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c58a55d3a6970f372dac78162f9c76a22a275372c4881c25cf92c801aaebbb8d
MD5 7f93036880703cc8a591f1a7e6725ab9
BLAKE2b-256 74b69644874cdf1fcf927e7bffd47f15bc531c2676f2b7162ae8c8905179f576

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fba700a50b73c1d373c9db5d5d4ac97d0e2b8eb929a1aa29d6a80210f0ed291c
MD5 2c4e7fc7a8cff158543b02633b666318
BLAKE2b-256 1336879e5c8401e66d905d6e9d1d286ef11bda9af864cb5fa5034d651099a720

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 53a5a604babc607f3ea8d33396880b37d4c30f9587229273a94db500da1fce00
MD5 5d130563bf639bd5100851b304cc4f1b
BLAKE2b-256 48b4239ca15f8e4562919bb35ed91c525fe2e0b18b6b9261b2c8037b78ad0955

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 744af0a640aa22e208340bac307ac2d84f3e3c5fcc688852d9e0a0c948312614
MD5 71ec7e79a703e6ae112d8db630993f95
BLAKE2b-256 e0947f849f9390c0b65bb0a2abc98f7bba153adff066614a3411613426c0f6a1

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 048414c265db8dc79449ecaa24a5614409701ddd85d4227353a0125b0a6770fe
MD5 8cd8a10ccf15a3ecc87e9efffb37e4c1
BLAKE2b-256 95d0b51510ef4a5564646e375bcba8af0f4a5ca6b093f8e1876f287114f48e9c

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6cdb05039b05ee5472ae688a740642215731dca8f99f038d367d3e60ba23281f
MD5 56a421ae848a8127a67db4c165a7eb08
BLAKE2b-256 fd84bf7d7c494ce38917a74b5e19b0078e4bab0209af9b5b28b07bcfd67aa4d7

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96d41165d637e0dad7790d929cab7c85f71ce4329680b258daa684eda57d28e8
MD5 96a50e1f8d8cf9d93c340e734cccc3cd
BLAKE2b-256 abd7688430d7dd07fd20465b4bd5da774868d019a724e488580b1f6f724daa81

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 299206965710a61941b2c91254d4512bb0e27a91c8da432f3971e76f398f465b
MD5 427c23cbee380509b948c0913dcdd844
BLAKE2b-256 301cf0db0aa31e7e76f5e8fc133789e572a4bead544c6bd72271900dd4b014bd

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 741fed1aed9cc7885aeb10fc50336bca56da8f2a3a2a367d501d766ace320145
MD5 c21f9c3c36a55ed296206086a6abe4b8
BLAKE2b-256 0002b41c785c10a079b0fe0d19b00422cb47211583cbe6c9cbaa63b3fa2a2cc1

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3e1ada6e788e3f6036e8ac6e74b7fcba9be65ef4b44b49b817c7724dbcf0ed5d
MD5 e9c7c0182aeb235877e90ca01ae1a0a0
BLAKE2b-256 7f328e67394144972502eb1a88c9004f6f4d7c9b30922eb3e5fd68cba76d65f4

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b484735ddaaf51e8bd351c1a8fb4af16ba5dc36be3f880e9098a9d410b9012f4
MD5 87a13b64972b1f47bf4918c0bf7e7251
BLAKE2b-256 8879c11a7b4120c2174aa2ca3d458fa26fc04d53a5c9d31583eb4e83d11936d5

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc6fd6a11415338892801e83cbb907cca1bbc43ab881805ba44fbf0727ba665e
MD5 7144cff5af72dc35435f811ce13ddaf6
BLAKE2b-256 8b8317e1fcb30b0a08cf34fb69bfde302ece94c090c732089838c3067746c927

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f614cc8e66543bf4fb4d8cde67702ce6f991a7db4c5e934820cef084546b91b6
MD5 a33ff8cb1b3294d1895af310dd7875b1
BLAKE2b-256 5ca818d6f87e5b9fba2b5fe4efbd7fc42a195bf577734d61233167a7b2e607b2

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aac8a37a0f882468e678742a04615b76755a375c582e8f883324dfee5fe4cb46
MD5 4b7154b5ae9a2e089ccc6d4668256797
BLAKE2b-256 0538f42dfef5005071ab1be91652daf01b63b896917466e4fe2ce7de6d282a79

See more details on using hashes here.

File details

Details for the file jesse_rust-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jesse_rust-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4dbe1e8831620a4627a78e6a46b2e45656fa50fb15d0f1e18ae98e6b8abbe525
MD5 b20eb5a9d14021c61b8fce58e4393c7e
BLAKE2b-256 4554ded40ae60501275c20b4f0466d56c0fb05c0b72d7a725a119b64061fcd0e

See more details on using hashes here.

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