chronopt
chronos-optimum is a Rust-first toolkit for time-series inference and optimisation with ergonomic Python bindings. It couples high-performance solvers with a highly customisable builder API for identification and optimisation of differential systems.
Project goals
- Speed and numerical accuracy through a Rust core.
- Modular components with informative diagnostics.
- Batteries-included experience spanning optimisation, sampling, and plotting.
Core capabilities
- Gradient-free (Nelder-Mead, CMA-ES) and gradient-based (Adam) optimisers with configurable convergence criteria.
- Paralleled differential equation fitting via DiffSL with dense or sparse Diffsol backends.
- Customisable likelihood/cost metrics and Monte-Carlo sampling for posterior exploration.
- Flexible integration with state-of-the-art differential solvers, such as Diffrax, DifferentialEquations.jl
- Python builder APIs mirroring the Rust core plus generated type stubs for autocompletion.
Installation
Chronopt targets Python >= 3.11. Windows builds are currently marked experimental.
pip install chronopt
# Or with uv
uv pip install chronopt
# Optional extras
pip install "chronopt[plotting]"
Quickstart
ScalarProblem
import numpy as np
import chronopt as chron
def rosenbrock(x):
value = (1 - x[0]) ** 2 + 100 * (x[1] - x[0] ** 2) ** 2
return np.asarray([value], dtype=float)
builder = (
chron.ScalarBuilder()
.with_callable(rosenbrock)
.with_parameter("x", 1.5)
.with_parameter("y", -1.5)
)
problem = builder.build()
result = problem.optimize()
print(f"Optimal parameters: {result.x}")
print(f"Objective value: {result.fun:.3e}")
print(f"Success: {result.success}")
Differential solver workflow
import numpy as np
import chronopt as chron
# Example diffsol ODE (logistic growth)
dsl = """
in = [r, k]
r { 1 } k { 1 }
u_i { y = 0.1 }
F_i { (r * y) * (1 - (y / k)) }
"""
t = np.linspace(0.0, 5.0, 51)
observations = np.exp(-1.3 * t)
data = np.column_stack((t, observations))
builder = (
chron.DiffsolBuilder()
.with_diffsl(dsl)
.with_data(data)
.with_parameter("k", 1.0)
.with_backend("dense")
)
problem = builder.build()
optimiser = chron.CMAES().with_max_iter(1000)
result = optimiser.run(problem, [0.5,0.5])
print(result.x)
Development setup
Clone the repository and create the Python environment:
uv sync
Build the Rust extension with Python bindings:
uv run maturin develop
Regenerate .pyi stubs after changing the bindings:
uv run cargo run -p chronopt-py --no-default-features --features stubgen --bin generate_stubs
Without uv, invoke the generator directly:
cargo run -p chronopt-py --no-default-features --features stubgen --bin generate_stubs
Pre-commit hooks
uv tool install pre-commit
pre-commit install
pre-commit run --all-files
Tests
uv run maturin develop && uv run pytest -v # Python tests
cargo test # Rust tests
Metadata
Release files for chronopt 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| chronopt-0.2.0.tar.gz | 84.7 kB | With provenance | Details |
Built distributions (wheels)
Total release size: 472.1 MB
Release files / chronopt-0.2.0.tar.gz
| Download URL | chronopt-0.2.0.tar.gz |
|---|---|
| Size | 84.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3035fbb4a1f3e9ae3b04e54b10b8965d5d65d9b2f7b8b1fb81724b27925ef72b
|
|
BLAKE2b-256 checksum How to use checksums |
be5a470a1f6f465d763f0a49cadcb219119e4d27a64649eadc3f0cc10d034b38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp314-cp314-win_amd64.whl
| Download URL | chronopt-0.2.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ae2e9920b1cdb1d88728f0558302407c954e6eb76539edd1ed8166905674565f
|
|
BLAKE2b-256 checksum How to use checksums |
4d96c1e188b90acc9fdffb550a266f383657c9ecde8c42ffd610af7e5e760194
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp314-cp314-manylinux_2_39_x86_64.whl
| Download URL | chronopt-0.2.0-cp314-cp314-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 38.8 MB |
| Tags | CPython 3.14 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
a97012fd6a22891fae56e4f63e889ac42b24b244df1c7a747552b3c44b7f8fbd
|
|
BLAKE2b-256 checksum How to use checksums |
3aa5332b9e73bfa46e2519187c86e79ab23b873d31c3fb8d72531b15f167d6a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | chronopt-0.2.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 37.4 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d66e0770efe9494a4ba0676c8ed6898327cbe22ffec237d0565cc1d3e7346b9b
|
|
BLAKE2b-256 checksum How to use checksums |
e1f7be481c7ee0355a53ee5fd237c287c8c9b5dd924c7c51ebc371a1620bed9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | chronopt-0.2.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 39.0 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
ef212901537800f93302edd27c21fc2e0f54d3b4c3a1c6c7d27d551844d84229
|
|
BLAKE2b-256 checksum How to use checksums |
a17eec3fc0b20fc1aaeb143e179996874e398199fed1e85ba971af8c98f721f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp313-cp313-win_amd64.whl
| Download URL | chronopt-0.2.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
76e3441d80fc205543bf4ffc8aa6cb3a8faecd2ad4cd832d868c8dd01082a167
|
|
BLAKE2b-256 checksum How to use checksums |
dd5b12cec78be3cf6aed2011df9d2a190c02ac6d3e54620a35118290587074b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp313-cp313-manylinux_2_39_x86_64.whl
| Download URL | chronopt-0.2.0-cp313-cp313-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 38.8 MB |
| Tags | CPython 3.13 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
7a060417e8e10533c4b55ad8110d8a0256ad64860732b751db549f67ccedef29
|
|
BLAKE2b-256 checksum How to use checksums |
71aaadf5e877a0b132a6aaee29e588561d6fa46cd07da940d83a3b9917cc60b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | chronopt-0.2.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 37.4 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
956e83f132fb30866ed06fdc2b7448c67a874177f50a8b569df2d5e636d00c24
|
|
BLAKE2b-256 checksum How to use checksums |
ff8abeb5ee124c2332dd4f02a36fe3849d31f2eece85cac1315e5a23a6bc0bb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | chronopt-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 39.0 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
012b10d4cc69122f115dda8beb987b4b2c5cf9bf9f7a8af976be1fed06364c5c
|
|
BLAKE2b-256 checksum How to use checksums |
17c4e3bcce316a41d06b0f22777cf4e832dbe16a48ae307422d034ba30264936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp312-cp312-win_amd64.whl
| Download URL | chronopt-0.2.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0cae557c56974146b06d30d9515780ffbc1713c90cfa18965f5ca9a2f4749201
|
|
BLAKE2b-256 checksum How to use checksums |
3717be7a27df990fc936a7f30ccfc51109aa20e3a960d0e8106fe89f8628114e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | chronopt-0.2.0-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 38.8 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
2b1e696bd0fecbfbe649d78d4d5330a63ea6d874a2b980723b9ec7aebc04bdfa
|
|
BLAKE2b-256 checksum How to use checksums |
59f3cf80902e6ee3e78c44a747c8baa35e1860b5638746ce378bce0c23f77c7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | chronopt-0.2.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 37.4 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb6963364fa7fdf8ce2ca9217cd5f0422deaa35315e05a3a9e748cf71896860a
|
|
BLAKE2b-256 checksum How to use checksums |
619e92c64d3b749d8ce4f9397a6f8aa44363e59601f363b79ff78ffa0f29a38e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | chronopt-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 39.0 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
81e381ec9323151a65e25167f6f5ccd462b55dd7957385f9a2207412c64bc239
|
|
BLAKE2b-256 checksum How to use checksums |
49aca9a6f644330a4f181df079bd3d6ccffbcfb0716377821780725124a30dfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp311-cp311-win_amd64.whl
| Download URL | chronopt-0.2.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
df79757d8149ce21b939bed1cd9cb99e54fa9db1d7bd1420b2c054b6054ea8cb
|
|
BLAKE2b-256 checksum How to use checksums |
f46a721d2842fc69766d34a9c3d27def36062739b9f8374e0bf47d65992120a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp311-cp311-manylinux_2_39_x86_64.whl
| Download URL | chronopt-0.2.0-cp311-cp311-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 38.8 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
954c36417c3ae24dd1f73905e2038174e55683ff904ccc8584b5e3b45e3ca12d
|
|
BLAKE2b-256 checksum How to use checksums |
416a3c824c5b2b984248870923a9612791ac53ee1fa661fe4f5de45ecdeee0aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | chronopt-0.2.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 37.4 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
220b60a9c304ca756d351f7d78295252c51e6aa0ff0ca7e90046b56c4b107d2a
|
|
BLAKE2b-256 checksum How to use checksums |
b14227c980789a1cca350ebaac9445bcc227d13b19f1c11f88beaad213765de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logRelease files / chronopt-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | chronopt-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 39.1 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
39f03a34c9fe3c3339b6275040e1795c85a01c9603b38b1b0c73f928b90e4221
|
|
BLAKE2b-256 checksum How to use checksums |
24c046990a12924166b9352aa17295765730aa99e8e2764cc834628cda97f768
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Dec 4, 2025.
Transparency logSecurity for chronopt 0.2.0
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.
Full provenance
All 17 files in this release have been uploaded with provenance metadata.
Attestation for chronopt-0.2.0.tar.gz
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 Dec 4, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.