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

From PyPI (when published)

pip install tulip-rs

From Source

Requirements:

  • Python 3.8+
  • Rust 1.70+
  • maturin
# Clone the repository
git clone https://github.com/me60732/tulip-rs-python.git
cd tulip-rs-python
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 
# Install maturin
pip install maturin

# Build and install in development mode
maturin develop

# Or build wheel for distribution
maturin build --release
#Or for build specific to current machine cpu archicture can also compile for other archictures by changing native to other rust cargo attributes
RUSTFLAGS="-C target-cpu=native" maturin build --release

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.5

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.5
File Size Uploaded
tulip_rs-0.2.5.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for tulip-rs 0.2.5
File
tulip_rs-0.2.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
tulip_rs-0.2.5-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.5-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
tulip_rs-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
tulip_rs-0.2.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
tulip_rs-0.2.5-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.5-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
tulip_rs-0.2.5-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
tulip_rs-0.2.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
tulip_rs-0.2.5-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.5-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.5-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
tulip_rs-0.2.5-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
tulip_rs-0.2.5-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
tulip_rs-0.2.5-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.5-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.5-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
tulip_rs-0.2.5-cp39-cp39-macosx_10_12_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.12+ x86-64 Details
tulip_rs-0.2.5-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
tulip_rs-0.2.5-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.5-cp38-cp38-manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64 Details
tulip_rs-0.2.5-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
tulip_rs-0.2.5-cp38-cp38-macosx_10_12_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.12+ x86-64 Details

Total release size: 128.7 MB

Release files / tulip_rs-0.2.5.tar.gz

Download URL tulip_rs-0.2.5.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
6bcc062309e0a8f62b02e2e123402856a06cd92f151f8dabbcbaa6b09a0d6a93
BLAKE2b-256 checksum
How to use checksums
e846042e101ad85c1aabef4999d8bd8bb565e3068798c4cb815dd4b865fc00ff
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-cp312-cp312-win_amd64.whl
Size 5.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
08c597742ad10c4170b9879d9e7ce619a8d65afc43888aa59abfd651a0cef79e
BLAKE2b-256 checksum
How to use checksums
f040dca22ba9edaf74794bb2acb49a365f4879b92848dddc25cf990e09e93788
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
402334b7bdd20b6012346d5bde66703e7c4858365ce7da434abca2219b802736
BLAKE2b-256 checksum
How to use checksums
137e43ab30ee0192d32ca61e4fa2773fcd589414878ae3dc3df39576d37fa82e
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
239b62d3706741fbb075182d80740feb2a3855346184318277dfbc72e91dbd43
BLAKE2b-256 checksum
How to use checksums
d6147e53cf42388ee533b83d2f2ba6a606a2340450620dcab31c3a79cdff9bcb
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
e63aeb1cf1264ea0293ff7c567d7196fba4df94ea75e182d2e637057a868ebe8
BLAKE2b-256 checksum
How to use checksums
217badbb9872a36d5b2e40f79e179b92f521126b80d3138dc00472dee388b638
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
13deb9a3fd0f38354d1b7dd889eaa0a6756c38f506784862617acad03b4285cc
BLAKE2b-256 checksum
How to use checksums
daa04321d2e5de1bb9c21456f4840e8d17362ccea216590436fe474073a31e82
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-cp311-cp311-win_amd64.whl
Size 5.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
630b5a9d71d22999d3e0c28ca2034b6667a8d32f49aae487a352df75e6aa1ced
BLAKE2b-256 checksum
How to use checksums
b1c6159d59d36b463bfd22153c01f53e6af2711b80e2c702a1f92fd52937c644
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-cp311-cp311-manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
897288d25c8c28f16d2a5d47240b2d27659d105acdc31f06e22a0273b4c7bbf9
BLAKE2b-256 checksum
How to use checksums
01fae900a522d2f93a2455fd05d54209c9fbb96f980ed3cb8acb657e2d3fa00e
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
100403d3b27664763e5e7e9c6110a46a392fe23425101960931e5cd011737834
BLAKE2b-256 checksum
How to use checksums
90f2d4543bdcd72a6709170a0720869537e5f0eda5d2abd4a18a9da6eb24ac5c
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
5c16252f3df390edc1a954ffcd73b265da9fdf83aaba6cd7771543b6e158f433
BLAKE2b-256 checksum
How to use checksums
0e9e8255585e5239ce873819782664fd0ca2e9f311db0b91af0c74ecf0ad1a0b
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
eadfd844ee02d578ae9fa15372a89776095489fd77f7dd510b5f1541b3889f9a
BLAKE2b-256 checksum
How to use checksums
f13b1a8711bf6d4169c91a701f2fefa1d670a7127ed47b1aac9012d73929423f
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 7, 2026.

Transparency log

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

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

Transparency log

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

Download URL tulip_rs-0.2.5-cp310-cp310-manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fc5772842983a84ca46dee8ebd269602f35a861c515d328016e9b5461e1df9ed
BLAKE2b-256 checksum
How to use checksums
8cbaf7ef813adeeed08cc6aa7419d97f7ee1daf95c35bd9aac323662646e0900
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
bdc91857afece510d133d280178312e010fcc2e06e21ab490f89ed4e30d05b34
BLAKE2b-256 checksum
How to use checksums
ae0badddb6104ea311e5036b81ac1c9c506a957e252de77c14e887ac6880cec9
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
fbc5056836e51c8d576991e197e9e8f20811cf22211e61b40e965c425254cec6
BLAKE2b-256 checksum
How to use checksums
b03646f412e11c2514848f2b33cd34f7c4118e3f0e9c8f36e002a04e24a3cd97
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
ddfbb98ab2371ae18f1785107f08a74ff2f2ce3fab3647a1d8d8b1c478bf4b6a
BLAKE2b-256 checksum
How to use checksums
48885ea15deb97c04b929751cab7e7eb2af2c8ef16eaf1a1a9f402eec00ef80b
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-cp39-cp39-win_amd64.whl
Size 5.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
5537b2a076150f425ca9a98ac599c8fd5afadcf13988c4367b026662db209e91
BLAKE2b-256 checksum
How to use checksums
1d6bc22daeb3a652e14ab01fb256666de7be5026de6c54956635ab485608b3c3
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-cp39-cp39-manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
41eca05ee653ecb4830c3d4083d50393b485790187e96993c2e5a8a96b55c382
BLAKE2b-256 checksum
How to use checksums
d5d41df2d7fde70405efdc8c401ab1e845a8f92e03bc1e69804e5fb222722674
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
ab575a8de0205e5b9e3bc32e9010a835590643e178a6c186479b437fb5e24f33
BLAKE2b-256 checksum
How to use checksums
875d9519715dcc1c1a51c7c92759246c891340791791e41dee50b7f3e17c20cd
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
600d4b3201fcdd0e3cc8e0fe09734445bf9f48bcea4695c802636fb093453505
BLAKE2b-256 checksum
How to use checksums
ea8bf3a64fc1478df721c534e87494c2af2b78976d4a8937ca04a171a1d9cfea
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
0ceaaa8fa8050c120fbca44d93b421b88749d1642085d8d0c9e47fcb7979bcb1
BLAKE2b-256 checksum
How to use checksums
f4f28c5681cd3196565554e6c0955102806521f518b8d67034b67a0b1f937ca3
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 7, 2026.

Transparency log

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

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

Transparency log

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

Download URL tulip_rs-0.2.5-cp38-cp38-manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eb860e2ef5b22ae2d36b11ec7231f9ea036ba6cdbc85dfe6a827e06b2d41b1dc
BLAKE2b-256 checksum
How to use checksums
228ed1391f3851a2babc6b40dc1adcf806abf0cc156afde3acf6749b6fb16353
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
2e103366fcc92d7df80ab49eba0a9c2a2c9f03f3282003934a4763b3313b4b48
BLAKE2b-256 checksum
How to use checksums
083b45e6ba6e0fa129cfed11ec6a3e3b195f889d8c296ee2d8f22ebc3a09dd7f
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
58f5217b3c456ab9a46ad9ec4e73138ad301d01ebb17834f3a0d0d324f19b695
BLAKE2b-256 checksum
How to use checksums
72c995bb196ae5130b11727ac7ef53326adb176477562695d0227b3f06e86122
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 7, 2026.

Transparency log

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

Download URL tulip_rs-0.2.5-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
a2015fa796c7a6715c9d353e259de6eb0f38e714f8e6bf130664661d5f74228c
BLAKE2b-256 checksum
How to use checksums
99bb978a670e51aba9b72c5e354dc1145f76efd7c11d86d10ca594f86c5d3ee2
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 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.9

26 release files

0.2.8

26 release files

0.2.7

26 release files

0.2.6

26 release files

This release

0.2.5 This release

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