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

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

Built distributions (wheels)

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

Download URL tulip_rs-0.2.6.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
ec2ca8ec1a8bcb779f18bd1d9d025bdce433007dadb10b8870fcee5b7ea73153
BLAKE2b-256 checksum
How to use checksums
7af14312df14d1f5b544cc2d72f6cbc4a5fed67f53b0ad6affd45520adb04335
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 10, 2026.

Transparency log

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

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

Transparency log

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

Download URL tulip_rs-0.2.6-cp312-cp312-manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b07b31e92e9ee70f82928642b4e8ed3c89f3e0f8a0b4e35fc50c016f843decc5
BLAKE2b-256 checksum
How to use checksums
603290f71886fffaab897acb93611e24eec2f21ff2c75a9806d780dea4fb7efb
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
03652abc85da44ddcb57c0699f45eaa5ba2ede68630199b8fbf865bd6610f2e7
BLAKE2b-256 checksum
How to use checksums
bcf55081e604615c9eb09e9f9c775f06090d4d29507b66c8e8fcb595040a3e35
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
c197d1ab455ae35bcaea4a016e39ea8455d2f787b3072e7ccd6fc21201176e3d
BLAKE2b-256 checksum
How to use checksums
d708b64cc394a16c93e07942d20d080df0aaf1cb53818599883b74ed56d95f7a
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
31fb3b43b2a7a5c8c1ab05abe43cc10e0d4dc8ffcf99eba5eac5df964f9d2e77
BLAKE2b-256 checksum
How to use checksums
6662e0dcecd3df0984e8f492fe5e8d34030796447345f8cd928b28cd3441143d
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-cp311-cp311-win_amd64.whl
Size 5.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
234be7d36b7885c51480e2e9b95f4c18c4a4df72a540bd00dad55b7e278df383
BLAKE2b-256 checksum
How to use checksums
747ead3b5968739fa13ad9b84111b5adadc77dd19e2737c7ed7a48a90a79bdf4
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
a226fe69b052a779e67e632921221e9af6b41d6d09af1dcc628f871b40834bc1
BLAKE2b-256 checksum
How to use checksums
6d5fcea29581241dd6f48f56322dcc4982fa194e89b440e75984514c9b73faf5
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
2c5e7a0caa28911949a8bce49a5054a73ba3ff5bba929ab560484b14f189212d
BLAKE2b-256 checksum
How to use checksums
e516086b78e6d51cbd3b5f83b467bb08f5fad9db4ef01cafcf61be0d80b75c1a
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
0cf32cbd357baa1b9e74db80ec58548ad97ca687029f769eab63cf0bef520c53
BLAKE2b-256 checksum
How to use checksums
03572b4ddc6c8f99ac7af22e6b8c4674dcf1c6bdd61125f4ebc4f3efdc863ce2
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
30188b93c22848a91fde5bfef6d23a3f550274eb2a4db9b7c674f2caa6b7e665
BLAKE2b-256 checksum
How to use checksums
a433c6cf1f0a26e6bf12485012328ff1dcc09d2bc9972f11e1207dafbc5d628c
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-cp310-cp310-win_amd64.whl
Size 5.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
03dbfe95defe428588b0da4705f163aaf4ebebd11d5e8d5e88762d054ef12757
BLAKE2b-256 checksum
How to use checksums
5334fba4714b712d7fdc0d823ea19ea5cf9e0e9126e7862a17bbd83f489218ba
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
ca65affbe14a21815304f3fdbe8dc34f52022697bb2988fe3287fc945be65511
BLAKE2b-256 checksum
How to use checksums
0ba798ae035c1e8e8406b97831ba9f554bbb23cd7487b6daee272594190f6402
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
739f7d0d8470213ee52b12d747938d8229b5592b76333912eff323157eac84c3
BLAKE2b-256 checksum
How to use checksums
f3936b7c064a671b5ab07f064ed9213e7a0c5cddd01039a2c3cff3dce06b491c
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
b37078ac162c35418647e2c257da561449a8e51d5641f11d96c4461e2d3f5e8a
BLAKE2b-256 checksum
How to use checksums
02a5b6029e93b0b341a023718a8f36ad518ff495c45e1421995c411afead4ed8
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
f18dfa535e03d254024091a59efe9bb3175dae8bc19aa8cdb0da8f9365128cb3
BLAKE2b-256 checksum
How to use checksums
93d4c0df0571322c868eba15391412ef468a624b3d99280c3b98f7a89e0361c5
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-cp39-cp39-win_amd64.whl
Size 5.1 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
93d09ca8f5e2397c89b3f233c56dda19464b70980c61488ada959b08136cb9ae
BLAKE2b-256 checksum
How to use checksums
dfd2d2d0d0ba710ca1639f410716e2c28eaa8adce721f8aae21c59b3339fb921
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
0d1c45fcc72b61ea5fac7ab3b356a963367063ae7c35a0e091c05093a26f9b86
BLAKE2b-256 checksum
How to use checksums
9c37efad78a73bf054d0f28083f8ba49409ee6d024d43c9f9673feb12fe688b3
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
ae605dd853332b99e4a7b019357f9ad7e2ff78e380f11f17f2259a6f6ba7d602
BLAKE2b-256 checksum
How to use checksums
08844cf754d2682158a5b3cf507b74ed6497bd44ae035514f6489be729a68ea5
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
b874165ac4afbf6b5001f10ec02f9363e1a94172549c757d34d5d9982483c174
BLAKE2b-256 checksum
How to use checksums
8fcd04eee24b2c05319a16c09be83d5c1657a28c9fc00fc33772a4bbebc57f9b
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
b5871eb52e99714a10261f9e07e245f8277387aa4b50493bd762a83f6849d4a0
BLAKE2b-256 checksum
How to use checksums
67b9d61be6252257b2abdbb9f2f1e6b23b613d53c6a434a6fa20761e6ec930a8
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 10, 2026.

Transparency log

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

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

Transparency log

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

Download URL tulip_rs-0.2.6-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
a50b2bc1ec97fee35b47efff53fe26f32120d4116798a3fb82494b1103fdd8bf
BLAKE2b-256 checksum
How to use checksums
323ac305e1af81306d441d22b536c33bdf61d93e8066273207b410372480d258
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
98dd47990752938c4e92ea02cf6184e6558bdb891707573195efab094094ad76
BLAKE2b-256 checksum
How to use checksums
2146b59d39d921d7172a8b8128a477f1458284aa1608e2e6ee496c60008f4d56
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
da268d49d10c30f26aae8afd104748a42e3e5a541fa5a6151a5ca002844b3019
BLAKE2b-256 checksum
How to use checksums
b4d59cdf5ad897988c2763ec012a14d6b02f1ebf17a4603d6288c81d8f588709
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 10, 2026.

Transparency log

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

Download URL tulip_rs-0.2.6-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
d7e695951323e5ccc2276f3b555d103031d5d487feeec5b114fa734cbf52933b
BLAKE2b-256 checksum
How to use checksums
d4601da20bbcc51d22127d6e551d647f0432a99a10f64987b65fe09e5dcf6dec
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 10, 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

This release

0.2.6 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