Powered by Rust via PyO3
VadePy
Interest rate analytics at compiled speed
vade is a production-grade Python library for curve construction, instrument pricing, and risk analytics — with all numerical computation running in native Rust.
<1mscurve calibration
8module coverage
Dual/Dual2automatic diff
Built for production quant workflows
Everything you need for rates analytics
From curve construction to exotic instrument pricing and risk — vade handles it in native Rust speed.
Rust-Powered Core
All computation — curve interpolation, AD propagation, solver calibration — runs in compiled Rust via PyO3. No Python interpreter overhead in the inner loops.
Automatic Differentiation
Dual and Dual2 types propagate first- and second-order derivatives through every operation. Delta and gamma risk fall out naturally — no finite differences.
Multi-Curve Calibration
Jacobian-based Solver calibrates discount, forward, and spread curves simultaneously to FRAs, IRS, OIS, bonds, CDS, and more.
Wide Instrument Coverage
IRS, FRA, ZCS, OIS, bonds, callable bonds, CDS, XCS, deposits, caps, floors, NDFs — modelled in pure Rust, exposed to Python with full type stubs.
Curve Flexibility
DiscountCurve, LineCurve, composite and spread curves. Interpolation methods: log-linear, linear on rates, flat-forward, Nelson-Siegel, NSS, Smith-Wilson.
Production Performance
9-instrument SOFR curve calibration in under 1ms. Cache-friendly Rust Vec<f64> layouts, compiled AD arithmetic, and zero GIL contention for numerical work.
Quick start
From zero to calibrated curve in minutes
Build a multi-node SOFR discount curve, calibrate it to live market instruments, price swaps, and compute delta risk — all with idiomatic Python backed by compiled Rust.
Automatic differentiation — no finite differences
Sub-millisecond calibration on modern hardware
Full IDE support via PyO3 type stubs
quick_start.py
import datetime
from vade import DiscountCurve, IRS, Solver
# Build a SOFR discount curve
nodes = {
datetime.date(2025, 6, 16): 1.0,
datetime.date(2026, 6, 16): 1.0, # 1Y
datetime.date(2027, 6, 16): 1.0, # 2Y
datetime.date(2030, 6, 16): 1.0, # 5Y
datetime.date(2035, 6, 16): 1.0, # 10Y
}
curve = DiscountCurve(nodes, interpolation="log_linear")
# Calibrate to market instruments
irs_2y = IRS(effective=datetime.date(2025, 6, 16),
termination="2Y", fixed_rate=3.85)
solver = Solver(curves=[curve], instruments=[
(irs_2y, 3.85, 0, "2Y_IRS", "USD"),
])
result = solver.iterate()
assert result.converged # True ✓
# Compute delta risk via automatic differentiation
delta = solver.delta(irs_2y, result)Explore the documentation
Jump straight to what you need.
Ready to build?
Install vade and have a calibrated SOFR curve running in under 5 minutes.
$pip install vade