The high-performance toolkit for rough path computation
Documentation | Installation | API reference | Paper
pySigLib brings path signatures, log-signatures, branched signatures, and signature kernels into one accelerated toolkit. It provides NumPy, PyTorch, and JAX support, with automatic differentiation for PyTorch and JAX and multithreaded C++ or native CUDA execution.
Installation
pip install pysiglib
# Add CUDA support
pip install "pysiglib[cuda]"
The JAX integration is included in the wheel. Install JAX separately with
pip install jax if you want to use it. For source builds and platform-specific
guidance, see the installation guide.
Quick start
import numpy as np
import pysiglib
path = np.random.default_rng().normal(size=(32, 1000, 10))
signature = pysiglib.sig(path, degree=5)
Paths have shape (path length, dimension) or
(batch size, path length, dimension). Computation runs on the device where
the input already lives.
Why pySigLib?
- A unified toolkit for rough path computations - signatures, log-signatures, branched signatures, and signature kernels.
- Accelerated CPU and CUDA implementations for large workloads.
- Native NumPy, PyTorch, and JAX support without moving data between frameworks.
- Automatic differentiation with PyTorch and JAX, including
jitandvmapsupport in JAX. - Cross-platform - Windows, Linux and Mac systems supported.
Capabilities
|
Signatures Truncated signatures and individual coefficients. |
Log-signatures Truncated log signatures in full or compact Lyndon coordinates. |
Signature kernels Kernels and metrics for sequential data. |
|
Branched signatures Branched signatures, branched log signatures and branched signature kernels. |
Signature streams Online updates and constant-time interval queries. |
Backpropagation Manual and automatic backpropagation with PyTorch and JAX support. |
Framework integrations
PyTorch autograd
Signatures compose directly with the rest of a PyTorch model:
import torch
from pysiglib.torch_api import sig
path = torch.randn(32, 1000, 10, device="cuda", requires_grad=True)
sig(path, degree=5).sum().backward()
JAX transforms
The JAX API supports jit, vmap, and grad:
import jax
import jax.numpy as jnp
from pysiglib.jax_api import sig
@jax.jit
def signature_norm(path):
return jnp.sum(sig(path, degree=5) ** 2)
path = jax.random.normal(jax.random.key(0), (1000, 10))
gradient = jax.grad(signature_norm)(path)
See the documentation for complete examples and the full API reference.
Citation
If the library supports your research, please consider citing the paper:
@article{shmelev2025pysiglib,
title={pySigLib -- Fast Signature-Based Computations on CPU and GPU},
author={Shmelev, Daniil and Salvi, Cristopher},
journal={arXiv preprint arXiv:2509.10613},
year={2025}
}
Contributing
Contributions are welcome. Please open an issue first to discuss a change, then submit a pull request.
Sponsors
If you'd like to support development, please consider sponsoring the project.
Metadata
Release files for pysiglib 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysiglib-4.0.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| pysiglib-4.0.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| pysiglib-4.0.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 7.0 MB
Release files / pysiglib-4.0.0-py3-none-win_amd64.whl
| Download URL | pysiglib-4.0.0-py3-none-win_amd64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2614ad1e7576e60f9a478d5bdb3e096ee232828fc3ff565644b3845d9bbd8d81
|
|
BLAKE2b-256 checksum How to use checksums |
b9bbabd4236b19df1bac12ee263711dbb9b352e155097d124409bbea25155326
|
| 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 27, 2026.
Transparency logRelease files / pysiglib-4.0.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | pysiglib-4.0.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
1ba47d5c58bde18bb0164267840a39b9dda319957fc3de886f8528b9576738ee
|
|
BLAKE2b-256 checksum How to use checksums |
bd64771649118bb411ca4284fd0b042e0067f24d220fe9fb33b9c20e6a8c01b7
|
| 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 27, 2026.
Transparency logRelease files / pysiglib-4.0.0-py3-none-macosx_11_0_arm64.whl
| Download URL | pysiglib-4.0.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d04ff11ced25632263dfd67fae9afa6dffcf29ab05726b413c5ceb458e5c954c
|
|
BLAKE2b-256 checksum How to use checksums |
64cf665b391d8ec963daee93193e672474a5449b972ebddfb47bc9015c0cb4a5
|
| 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 27, 2026.
Transparency log