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.1.0.tar.gz (53.9 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.1.0-cp313-cp313-win_amd64.whl (327.0 kB view details)

Uploaded CPython 3.13Windows x86-64

jesse_rust-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (424.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

jesse_rust-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (391.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

jesse_rust-1.1.0-cp313-cp313-macosx_11_0_arm64.whl (368.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

jesse_rust-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl (403.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

jesse_rust-1.1.0-cp312-cp312-win_amd64.whl (327.0 kB view details)

Uploaded CPython 3.12Windows x86-64

jesse_rust-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (424.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

jesse_rust-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (391.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

jesse_rust-1.1.0-cp312-cp312-macosx_11_0_arm64.whl (368.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

jesse_rust-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl (403.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

jesse_rust-1.1.0-cp311-cp311-win_amd64.whl (327.9 kB view details)

Uploaded CPython 3.11Windows x86-64

jesse_rust-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (425.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

jesse_rust-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (391.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

jesse_rust-1.1.0-cp311-cp311-macosx_11_0_arm64.whl (368.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

jesse_rust-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl (404.9 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

jesse_rust-1.1.0-cp310-cp310-win_amd64.whl (329.9 kB view details)

Uploaded CPython 3.10Windows x86-64

jesse_rust-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (425.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

jesse_rust-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (391.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

jesse_rust-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (368.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

jesse_rust-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl (404.9 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for jesse_rust-1.1.0.tar.gz
Algorithm Hash digest
SHA256 84a99e349f5565e24cad5a4130bd37e6d455418a037dfcc3065e42b447fecde7
MD5 b2b1e6f408390679e7613a4236210989
BLAKE2b-256 037621568ea5c3b94c7a558ffce999c34aba55ec3204791fd0b455b9442fce5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8dc478a7d9bf618b7c9f412a5667f61105f8b6b61c7e3d86b7d69699bfed6934
MD5 1c9d9477252567c3afc6b1be64dd37eb
BLAKE2b-256 2427389f24c531c2784fd34209fc83d1e0499f0c738488ba3d747b6420f3e9bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e748457a9eb0e50ca10b585f18f4d4fa4d9e84dc278c08f64261024395f4c2a3
MD5 a892f82f4c6ebc9b38e31d0970f8a5bb
BLAKE2b-256 27f26262c5e6b25f93e425dd2f48772b686218f7a6791d1402625364891a3d2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f088232bff320e1e3101700c3cd5819c827cce34f221dd280b9a229e8cb040c
MD5 99f31b4fff3167997d2cd76b6b92325a
BLAKE2b-256 d874f0d0efe16c9a8d559b7fb1a271468436fc09f77f842a5a6b1bbf8e332e9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34026cc4153826862a9cc17bea5bf0c60dd1e2a176aa59990dd7491787ef7a78
MD5 2d683e5917b9b10488beb854b66b0767
BLAKE2b-256 e84a434a45f61e8b2de6e255b28d75a558bf520f6a60a2efa77efb19f0246440

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4c55cff5fa8fa78fbd631c24d64e4ebc2890de9be81a398755b55357482a7bc3
MD5 af3d4b08fb43270e50141ea30e154ebc
BLAKE2b-256 b036e4e6f503edbbad86f2794628bff0ed7d39bf810d26d92ee7f8d55d561a5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cc6bc87118f231273ffcf63afc40d5cd68ac44c45fac7709b6893853721df162
MD5 8ffdae455fda12ec99a59c7f5f01b1ee
BLAKE2b-256 fc861f4899c1e8f63541e2117609111938726ec2383a226e2655c9597b0a9e51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d61d7a12c7fa28520271122ebe14b791530a0a2c13c9ec580fdc519e22ea1aab
MD5 281e5b8665ac6a9330b288285f054bae
BLAKE2b-256 f45067d1d6ebae01f7d3b53772d73fe235019e285d8b32927522f676668ebd4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 93f78d52f16a72419b64adbe11c4117e256159cd4af3ac72862fbc6c0da49138
MD5 fe6be2b54f6a3cd2fb9e7a2210f4af0d
BLAKE2b-256 429de38a1c78388614add1326388e9a46ea0192d4745a78395477d27446757eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd510cc4c3da1e603da65e09d80ab8cb4814ea5e6c6614edeae75eed3d8469c0
MD5 7f7cd33d87fb45501dd43fc4165c81a2
BLAKE2b-256 226dd8bce6857a3340f39fbef2eeb86830b05106bd71e6cb705e588ffea93548

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f6c08e3a9cc78eafe1a22adbe75f9c56d470edf07092ae65a40934312ec033ef
MD5 cb41c41f0d33ca76b9cd1cdfcfbe96d8
BLAKE2b-256 9d8538e60cd24669b9f3ea9fd13cf8312cdbec2e4ad5360e5bfd82bdaf6f598c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4b54c2e6510ddd15380f97c455ef7a49569cad5e24f4858a910f8fccefa557a5
MD5 c42363ca8d5e5c01917687ecc3297756
BLAKE2b-256 f89e6490433439d88d7673df80169f8a1095a3f59252afd57465f9a7990bd47a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41a6977e0b2e64eaeacc40049c5263b6439e4f1cef7c78842dcb7e32b12980c3
MD5 6febf5fa27ae377076c30e7d5c85b70c
BLAKE2b-256 1a9197d3a45286189455e206af96028e7bfce4b2a2cc2a14305787a264027459

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81e5205e01f9162f155706ae0ddb4a1084e23dc8a9b1b4a7444fe150f40a3f09
MD5 4b9f13baf54571e01354b0669169e786
BLAKE2b-256 f8c33bf693985fad99ded198ebf81262b4a695027fc09940eb01e56eb44ef147

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3d4f39aab531aa4c37a2949988a138b3bfea8770f853b7b95751bfcd93c8db5f
MD5 11a6342e0001f80526876c45b9dbb2ad
BLAKE2b-256 1f55312ee1c52a9e6b43c6e90b63d4d48e3024b75a60cf0b7d02b59c778cee8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0ed7181a4fb0798e939f0f439ed12af84262f51571b7e6ef281f0b6a5c1363fa
MD5 0e39ef50594a9ef33ce37958ae2c2000
BLAKE2b-256 8ea7ceb9b464b92a4c951d97f5ec2f113a66ee76b0f9c01d75d896425618393a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 24f3171807d61ed32f9ace9614bd6eb59952873fc9600372e9812db370718f7f
MD5 c0e18541be9a1b0f788beef19812f12c
BLAKE2b-256 029400241835fc223599ce91ca085ea7df702c61f737c046eff88450dd627b06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ba799a84bcbbba61f23399a22b481bbf85d11b0d48f3ee7805c3a1826e2d926
MD5 39d73efbdead71b9b6b23b0577364948
BLAKE2b-256 adc5c7a4e10883236ef8f5e1804b3bf6aa379da224a49c78192d52df3c4af280

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d0dc1acf05bf406367f88a8868c77109bdd81d27465111e5cdd18c37972c9da
MD5 dabc76a8b3eaaacfd2922db5ca64dca2
BLAKE2b-256 5b32aee7acc4f540f37a44e5527c696c4a38122dca41ca7f47a40eeb387f626c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b2641ccfa663e142e7360c59bd1f86a77a32ecd7bf4cff9a471aa9975970b99
MD5 40699251fe69202eb2442272d3bcc975
BLAKE2b-256 c8666b70fef62dbc3b5133908494c9b9811671b63f8f5eddc05491ec3f8ada50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jesse_rust-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8ac20f9ee7ed7b4cd808f06f5f7f2c892e492db9c88401acc0073cff394e2b3d
MD5 d6789bcb7aa31b056bfbe95583d091b0
BLAKE2b-256 92c8f22b2777dcece49280a847f69187c214ec6017c529a5183bb78fbf2d6fa3

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