Skip to main content

TulipRS Python Bindings

Python Rust License

High-performance Python bindings for the TulipRS technical analysis library. Provides 100+ technical indicators and candlestick pattern recognition with zero-copy numpy integration.

Features

  • 100+ Technical Indicators: Moving averages, oscillators, trend indicators, volume indicators, and more
  • 60+ Candlestick Patterns: Complete Japanese candlestick pattern recognition
  • Zero-Copy Performance: Direct numpy array integration without unnecessary data copying
  • State Management: Support for streaming/real-time calculations with state preservation
  • Comprehensive Error Handling: Clear error messages and validation
  • Type Safety: Full type hints and comprehensive documentation

Installation

Requirements:

  • Python 3.8+
  • Rust nightly (pinned by the repo's rust-toolchain.toml)
  • maturin (pip install maturin)

Building on your own machine with -C target-cpu=native lets LLVM use every instruction set your CPU supports — speeding up the scalar indicators as much as the SIMD ones, well beyond the generic prebuilt wheels:

# Clone the repository
git clone https://github.com/me60732/tulip_rs_python.git
cd tulip_rs_python
git checkout {latest tag}   # or omit for the bleeding edge — see the repo's tags page
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1

# Install maturin
pip install maturin

# Build and install in development mode
RUSTFLAGS="-C target-cpu=native" maturin develop --release

# Or build a wheel for distribution
RUSTFLAGS="-C target-cpu=native" maturin build --release

To target a different architecture, replace native with the appropriate codegen flag (e.g. -C target-cpu=x86-64-v3).

From PyPI

Use this only when the deployment target architecture is unknown or a Rust toolchain can't run there (prebuilt wheels ship generic baselines):

pip install tulip-rs

Quick Start

import numpy as np
import tulip_rs

close = np.array([81.59, 81.06, 82.87, 83.00, 83.61,
                  83.15, 82.84, 83.99, 84.55, 84.36], dtype=np.float64)

# Calculate EMA(5)
outputs, state = tulip_rs.indicators.ema.indicator([close], [5.0])
print("EMA(5):", outputs[0])

# Streaming: continue from saved state without reprocessing history
new_bar = np.array([85.10], dtype=np.float64)
next_outputs, next_state = state.batch_indicator([new_bar])
print("Next EMA:", next_outputs[0])

# MACD — three outputs: macd line, signal, histogram
high = np.array([82.15, 81.89, 83.03, 83.30, 83.85, 83.90, 83.33, 84.30, 84.84, 85.00], dtype=np.float64)
low  = np.array([81.29, 80.64, 81.31, 82.65, 83.07, 83.11, 82.49, 82.30, 84.15, 84.11], dtype=np.float64)
macd_out, _ = tulip_rs.indicators.macd.indicator([close], [2.0, 5.0, 9.0])
macd_line, signal, histogram = macd_out[0], macd_out[1], macd_out[2]

# Candlestick patterns (returns list of pattern-match lists per bar)
open_ = np.array([81.85, 81.20, 81.55, 82.91, 83.10,
                  83.41, 82.71, 82.70, 84.20, 84.25], dtype=np.float64)
cdl_out, _ = tulip_rs.indicators.candlestick.indicator([open_, high, low, close], [5.0, 1.0, 1.0])
for bar_idx, patterns in enumerate(cdl_out[0]):
    for p in patterns:
        print(f"Bar {bar_idx}: {p['full_name']} ({p['forecast']})")  

Available Indicators

Moving Averages

  • sma — Simple Moving Average
  • ema — Exponential Moving Average
  • wma — Weighted Moving Average
  • dema — Double Exponential Moving Average
  • tema — Triple Exponential Moving Average
  • trima — Triangular Moving Average
  • hma — Hull Moving Average
  • zlema — Zero-Lag EMA
  • kama — Kaufman Adaptive Moving Average
  • vidya — Variable Index Dynamic Average
  • vwma — Volume Weighted Moving Average
  • wilders — Wilder's Smoothing
  • smaenvelope — SMA Envelope

Oscillators

  • rsi — Relative Strength Index
  • macd — Moving Average Convergence Divergence
  • stoch — Stochastic Oscillator
  • stochrsi — Stochastic RSI
  • willr — Williams %R
  • cci — Commodity Channel Index
  • cmo — Chande Momentum Oscillator
  • ultosc — Ultimate Oscillator
  • ao — Awesome Oscillator
  • fisher — Fisher Transform
  • fosc — Forecast Oscillator
  • msw — Mesa Sine Wave
  • trix — TRIX

Trend Indicators

  • adx — Average Directional Index
  • adxr — ADX Rating
  • di — Directional Indicator
  • dm — Directional Movement
  • dx — Directional Movement Index
  • aroon — Aroon
  • aroonosc — Aroon Oscillator
  • psar — Parabolic SAR
  • ppo — Percentage Price Oscillator
  • apo — Absolute Price Oscillator
  • vortex — Vortex Indicator
  • elderray — Elder-Ray Index
  • donchianchannel — Donchian Channel
  • ichimoku — Ichimoku Cloud
  • supertrend — SuperTrend
  • ef — Efficiency Ratio
  • mama — MESA Adaptive Moving Average

Volatility Indicators

  • bbands — Bollinger Bands
  • atr — Average True Range
  • natr — Normalized ATR
  • tr — True Range
  • stddev — Standard Deviation
  • volatility — Volatility
  • vhf — Vertical Horizontal Filter
  • cvi — Chaikin Volatility
  • chandelierexit — Chandelier Exit
  • keltnerchannel — Keltner Channel
  • trvi — True Range Volatility Index

Volume Indicators

  • ad — Accumulation/Distribution
  • adosc — A/D Oscillator (Chaikin Oscillator)
  • obv — On Balance Volume
  • mfi — Money Flow Index
  • nvi — Negative Volume Index
  • pvi — Positive Volume Index
  • vosc — Volume Oscillator
  • kvo — Klinger Volume Oscillator
  • emv — Ease of Movement
  • wad — Williams Accumulation/Distribution
  • marketfi — Market Facilitation Index
  • chaikinmf — Chaikin Money Flow
  • vwap — Volume Weighted Average Price

Price & Statistical

  • avgprice, medprice, typprice, wcprice — Price transforms
  • max, min — Rolling maximum / minimum
  • mom — Momentum
  • roc, rocr — Rate of Change
  • bop — Balance of Power
  • linreg, tsf — Linear Regression / Time Series Forecast
  • dpo — Detrended Price Oscillator
  • mass — Mass Index
  • md — Mean Deviation
  • qstick — QStick
  • pivotpoint — Pivot Points

Cycle & Ehlers Indicators

  • cybercycle — Ehlers CyberCycle
  • adaptivemsw — Adaptive Mesa Sine Wave
  • homodynediscriminator — Homodyne Discriminator
  • instantaneoustrendline — Instantaneous Trendline
  • trendmode — Ehlers TrendMode
  • highpass — Ehlers High Pass Filter
  • hilberttransform — Hilbert Transform
  • roofingfilter — Ehlers Roofing Filter
  • supersmoother — Ehlers Super Smoother
  • ccfisher — Cyber Cycle Fisher

Candlestick Patterns

  • 77+ classical patterns via tulip_rs.indicators.candlestick
  • Single-pass detection of all patterns
  • Returns per-bar match lists with name, Japanese name, bar count, and forecast type

Advanced Usage

Working with Results

import tulip_rs
import numpy as np

# Calculate MACD (returns multiple outputs)
prices = np.random.randn(100).cumsum() + 100
result = tulip_rs.macd(prices, fast_period=12.0, slow_period=26.0, signal_period=9.0)

# Get individual outputs
macd_line = result.get_output()  # First output
all_outputs = result.get_all_outputs()  # All outputs as list

macd_line = all_outputs[0]
signal_line = all_outputs[1]  
histogram = all_outputs[2]

print(f"MACD has {result.num_outputs()} outputs")
print(f"State available: {result.has_state()}")

State Management for Streaming

import numpy as np
import tulip_rs

prices_batch1 = np.array([100.0, 101.0, 102.0, 103.0, 104.0], dtype=np.float64)
outputs, state = tulip_rs.indicators.sma.indicator([prices_batch1], [3.0])
print("SMA batch 1:", outputs[0])

# Serialise state
json_str = state.to_json()

# Continue with new bars — no reprocessing of history
prices_batch2 = np.array([105.0, 106.0], dtype=np.float64)
next_outputs, next_state = state.batch_indicator([prices_batch2])
print("SMA batch 2:", next_outputs[0])

# Restore from JSON
restored_state = tulip_rs.indicators.sma.State.from_json(json_str)

Candlestick Pattern Analysis

# OHLC data
open_data = np.array([100, 102, 104, 103, 105])
high_data = np.array([101, 104, 105, 104, 106])
low_data = np.array([99, 101, 103, 102, 104])
close_data = np.array([102, 103, 103, 105, 105])

# Detect bullish engulfing pattern
result = tulip_rs.bullish_engulfing(
    open_data, high_data, low_data, close_data,
    line_period=10.0, body_period=10.0,
    min_long_cdl_height=0.001, min_cdl_height_tolerance=0.05,
    doji_max_height=0.1
)

# Analyze patterns
patterns = result.get_patterns()  # Returns numpy array of i8
pattern_bools = result.get_pattern_bools()  # Returns boolean array

bullish_count = result.count_bullish()
bearish_count = result.count_bearish()

print(f"Bullish patterns detected: {bullish_count}")
print(f"Pattern values: {patterns}")

Utility Functions

# List all available indicators
indicators = tulip_rs.list_indicators()
print(f"Available indicators: {len(indicators)}")

# List all candlestick patterns  
patterns = tulip_rs.list_candle_patterns()
print(f"Available patterns: {len(patterns)}")

# Get detailed information about an indicator
info = tulip_rs.get_indicator_info("rsi")
if info:
    print(f"Name: {info.name}")
    print(f"Full Name: {info.full_name}")
    print(f"Inputs: {info.inputs}")
    print(f"Options: {info.options}")
    print(f"Outputs: {info.outputs}")

Performance

TulipRS Python bindings are designed for maximum performance:

  • Zero-copy numpy integration: Direct memory access without copying
  • Rust-powered calculations: Compiled Rust code for maximum speed
  • SIMD optimizations: Automatic vectorization where possible
  • Memory efficient: Minimal memory allocations and reuse where possible

Benchmark comparison with other popular libraries:

SMA (10,000 points):
- TulipRS:     0.045ms
- TA-Lib:      0.123ms  
- Pandas:      0.267ms

RSI (10,000 points):
- TulipRS:     0.087ms
- TA-Lib:      0.156ms
- Pandas:      0.445ms

Error Handling

The library provides comprehensive error handling:

try:
    # This will raise an error - period too small
    result = tulip_rs.sma(np.array([1, 2]), period=10.0)
except ValueError as e:
    print(f"Error: {e}")
    # Error: Not enough data: more input data points are required

try:
    # This will raise an error - mismatched array lengths  
    result = tulip_rs.atr(
        high=np.array([1, 2, 3]),
        low=np.array([1, 2]),  # Different length!
        close=np.array([1, 2, 3]),
        period=2.0
    )
except ValueError as e:
    print(f"Error: {e}")
    # Error: Array length mismatch: array 1 has length 2, expected 3

API Reference

IndicatorResult

Result object returned by indicator functions.

Methods:

  • get_output() -> numpy.ndarray: Get the first (primary) output array
  • get_all_outputs() -> List[numpy.ndarray]: Get all output arrays
  • num_outputs() -> int: Get the number of outputs
  • has_state() -> bool: Check if state is available for continuation
  • state_to_json() -> Optional[str]: Serialize state to JSON

CandleResult

Result object returned by candlestick pattern functions.

Methods:

  • get_patterns() -> numpy.ndarray[int8]: Get pattern values (-100, 0, 100)
  • get_pattern_bools() -> numpy.ndarray[bool]: Get patterns as boolean array
  • count_bullish() -> int: Count bullish patterns (value = 100)
  • count_bearish() -> int: Count bearish patterns (value = -100)
  • has_state() -> bool: Check if state is available
  • state_to_json() -> Optional[str]: Serialize state to JSON

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone the repository
git clone https://github.com/yourusername/tulip-rs-python.git
cd tulip-rs-python

# Install development dependencies
pip install maturin pytest pytest-benchmark

# Build in development mode
maturin develop

# Run tests
pytest tests/

# Run benchmarks
pytest benchmarks/ --benchmark-only

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Changelog

v0.1.0 (Initial Release)

  • 100+ technical indicators
  • 60+ candlestick patterns
  • Zero-copy numpy integration
  • State management support
  • Comprehensive error handling
  • Full type hints and documentation

Metadata

Release files for tulip-rs 0.2.9

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

Source distribution (sdist)

Source distribution for tulip-rs 0.2.9
File Size Uploaded
tulip_rs-0.2.9.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for tulip-rs 0.2.9
File
tulip_rs-0.2.9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.9-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
tulip_rs-0.2.9-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
tulip_rs-0.2.9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.9-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
tulip_rs-0.2.9-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
tulip_rs-0.2.9-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.9-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
tulip_rs-0.2.9-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
tulip_rs-0.2.9-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.9-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
tulip_rs-0.2.9-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details
tulip_rs-0.2.9-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ x86-64 Details
tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.9-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
tulip_rs-0.2.9-cp38-cp38-macosx_10_12_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.12+ x86-64 Details

Total release size: 128.5 MB

Release files / tulip_rs-0.2.9.tar.gz

Download URL tulip_rs-0.2.9.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
9c4a4f0da0a48c8f44f131e67e28fef5a5a37f07396a628895ac91b57e1c3ee9
BLAKE2b-256 checksum
How to use checksums
2d0f00cebee35a2d39093507fe77c57cc4fc679a4d38d9aebae908d90152742e
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp312-cp312-win_amd64.whl

Download URL tulip_rs-0.2.9-cp312-cp312-win_amd64.whl
Size 5.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ad99531548ca755b92a2a4debc3289703f828d79144bf0cf48dc75dbb43c8330
BLAKE2b-256 checksum
How to use checksums
eb04e727ab3d4a01a64099b68c68936c7fd45f8b0687752b60f1a2c4380353f0
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d9ca4d68cbe471aaf4f730348093801ff233077087c9b493f651f8d7e6ab28a4
BLAKE2b-256 checksum
How to use checksums
f4bae273ac33a778cf8f67c3cd665f689afa615f57d066b57c9070cc9b0a5cfd
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL tulip_rs-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl
Size 4.8 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7fd59e80ccaeb482e67c779c38eb97e5b603fd6b579559e146e3a5bba3dec37c
BLAKE2b-256 checksum
How to use checksums
dcc8781d8b685cec6f8cf9d385fdd78fcd2eeaf156bae14497cf2bfc3c52e880
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp312-cp312-macosx_11_0_arm64.whl

Download URL tulip_rs-0.2.9-cp312-cp312-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3ebbb2db4ec2c78baffe32c34db9fa0029fca9d917105b3b74b6d8ff62a63e23
BLAKE2b-256 checksum
How to use checksums
b30ca6cef0f33cae61582965ae3c99aaee34e29e9252f6951a3a11fb1fec2d16
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp312-cp312-macosx_10_12_x86_64.whl

Download URL tulip_rs-0.2.9-cp312-cp312-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
aa4a31996e0684ceac68f329ea441e721278b3551e0eb0ee689997954a523d7a
BLAKE2b-256 checksum
How to use checksums
0cb8b2fa7bac64324e149b40ecb8e8ec83d16081b5b7ed2a7184704fbea5fcf8
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp311-cp311-win_amd64.whl

Download URL tulip_rs-0.2.9-cp311-cp311-win_amd64.whl
Size 5.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2b5eb7e4243f57f97ef3d03d0295d8753ce14b6f3f6c867921a834c7180e7153
BLAKE2b-256 checksum
How to use checksums
306f2ba87d976fe9f0500f98ed185eaae3cc18829f23c8c9497a422c3a37f1db
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d6f84e4fd90489f8e123817f3f622aa9f6c054881476bb56facf88d516432330
BLAKE2b-256 checksum
How to use checksums
3aac04beee58a18ed2952fd0e55deb90ab05518c5c089a3766137a69d392b00e
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL tulip_rs-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl
Size 4.8 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eaa2636293d5a9582bdf59ed8f65072a854683ad2e9a563d9ee64c9eda9f6cb0
BLAKE2b-256 checksum
How to use checksums
87aec6c396787eb9904f9fb28e94fb50d962b8490e897bcdb2904491327e4bb0
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp311-cp311-macosx_11_0_arm64.whl

Download URL tulip_rs-0.2.9-cp311-cp311-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f836091da77474f3db123f9f17663c659e71adefd5685b59fa6ccb8486d02821
BLAKE2b-256 checksum
How to use checksums
f057f15b8eecfcbc0c5afbf12abb42264709097097ce59516e886d6fee0f88f8
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp311-cp311-macosx_10_12_x86_64.whl

Download URL tulip_rs-0.2.9-cp311-cp311-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
28e7d892a7296f7a826b287064c0ecf7f980ba412e1cb3d601e5cf0bf0e42c1b
BLAKE2b-256 checksum
How to use checksums
c57d183bba8f4719f7574e4f052b25a2569b466f03b6f6f43828331bd0318504
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp310-cp310-win_amd64.whl

Download URL tulip_rs-0.2.9-cp310-cp310-win_amd64.whl
Size 5.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a4b289991906ba637f8d833908a13162c9c3ec7447d14acc847ba60507f111e1
BLAKE2b-256 checksum
How to use checksums
0ae55c6c85bf07bc71f53a08978119ac248aec4dd69f2b6c40f4935c05c629f2
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7fb7f36fbd4c1cd2bbcc16378be96c0925412449528378588e17dd480c6ad9b7
BLAKE2b-256 checksum
How to use checksums
13d281e4f4933b221f318c498e39e3f15d43736550c9690a9e7751b319906afe
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL tulip_rs-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl
Size 4.8 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a724f26404d116bfc0d9de81c2f30899016a943aa6a1ac03e277a4f84771a6a2
BLAKE2b-256 checksum
How to use checksums
6b61b87716bff25421bfa9c9008a706b49b9f90613ec73267e2e0280c5eacae8
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp310-cp310-macosx_11_0_arm64.whl

Download URL tulip_rs-0.2.9-cp310-cp310-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
90cccbe0b25c6908ded0c8ef8a534d181adb8dbad6eeb0a938a1f1ae33776e61
BLAKE2b-256 checksum
How to use checksums
479f6d3513570d4768479acb36143bd7f729216463e320361178d9898665b57e
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp310-cp310-macosx_10_12_x86_64.whl

Download URL tulip_rs-0.2.9-cp310-cp310-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
bd5193d96f4367472587affb5d3b2e3de6572dc273a3d14c1dd0e3a7b0ad5ef9
BLAKE2b-256 checksum
How to use checksums
0996417d6fc89f923db2b53532db3fd0a03818aa577c06bd47d8c9fd5100557f
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp39-cp39-win_amd64.whl

Download URL tulip_rs-0.2.9-cp39-cp39-win_amd64.whl
Size 5.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a6f27f7ebe10454d33e05ce7684167eed38a710e31d19716726f3b178ac593a9
BLAKE2b-256 checksum
How to use checksums
6e7f6a78302d36cff73fd04700c0a013c20db863eb37803fca2fc9b81476e2ed
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
21cb2a007cc3353f0641d57766ef9488661bf84dd532daed8bb539ef57e845a7
BLAKE2b-256 checksum
How to use checksums
5fc4576389cd0de5b07ed4650ee5049af28acc9e512b0fa79f03041b03436415
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL tulip_rs-0.2.9-cp39-cp39-manylinux_2_28_aarch64.whl
Size 4.8 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a78b8a372c75252a66d4fc9c1187d16261c528f37dc7e1e494c1953edea5f046
BLAKE2b-256 checksum
How to use checksums
359283765e9ee0b3157e029176fc30cd1b7ace242418f469f4a64cc493aa1c9b
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp39-cp39-macosx_11_0_arm64.whl

Download URL tulip_rs-0.2.9-cp39-cp39-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6f1a7964b38b1d59c0e67b703851f9f7893ee4f1b6e831ee0375e51d042611cc
BLAKE2b-256 checksum
How to use checksums
f2e25b3ad48a369d83d02f8547d5bbf5dd6e838541fc5d3e7a20b091ec8e8d8e
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp39-cp39-macosx_10_12_x86_64.whl

Download URL tulip_rs-0.2.9-cp39-cp39-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.9 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
dcc78feba5a4dec80d405deca1aff01dc925289582d4272fe0ed0c0c75763244
BLAKE2b-256 checksum
How to use checksums
1834d136c133046989eb2a169ffb3f3a49379771c691e6b60f0137622e886a03
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp38-cp38-win_amd64.whl

Download URL tulip_rs-0.2.9-cp38-cp38-win_amd64.whl
Size 5.1 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
f16cb7c3fe1c23e0a5631ec8ece5e3b429aff981033d227544f17c05701b57df
BLAKE2b-256 checksum
How to use checksums
c5ba68849cef712b851744ff33d3d97afe70121c68ccd835962fdd5281f7fc5b
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_x86_64.whl

Download URL tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9033ee8a75095e0b2edd8f09fdf12fe67827829a345ab739d6eec30927fdc7e0
BLAKE2b-256 checksum
How to use checksums
f8fd3dd80f16a3fd7bdafc811a47b1a0e76989e3ff11b3bb0b36e7ed509a47eb
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_aarch64.whl

Download URL tulip_rs-0.2.9-cp38-cp38-manylinux_2_28_aarch64.whl
Size 4.8 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
055dd35a1e6a5fbe5a5b3e9d5012c5301514b9e1fff6f77c0b4950ae01d2c5d8
BLAKE2b-256 checksum
How to use checksums
9286ef62467d3d63b9348c122c5d813e297f0139936a3704f40beeca34ee27eb
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp38-cp38-macosx_11_0_arm64.whl

Download URL tulip_rs-0.2.9-cp38-cp38-macosx_11_0_arm64.whl
Size 4.5 MB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0a327053f87a912617fd0ec2170ac05bf1cea24a49be7a9dac7655481e963017
BLAKE2b-256 checksum
How to use checksums
0c30e089d7abf4790f2e353116e5e3c3c722480610bd3d276f58590023ab365b
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 Sep 17, 2026.

Transparency log

Release files / tulip_rs-0.2.9-cp38-cp38-macosx_10_12_x86_64.whl

Download URL tulip_rs-0.2.9-cp38-cp38-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.8 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
84072d8b0ed50bb3ea1389a430d9e0fb0e0b84f987113ce42b97ed4bb21a8c55
BLAKE2b-256 checksum
How to use checksums
317233e03486bb3340dbb84379b1d0849cb2e767eb87014be1f68972d6d43681
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 Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.9 This release

26 release files

0.2.8

26 release files

0.2.7

26 release files

0.2.6

26 release files

0.1.9

26 release files

0.1.8

26 release files

0.1.4

26 release files

0.1.3

26 release files

0.1.1

26 release files

0.1.0

2 release files

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