Skip to main content

fcmaes-rust for Python

Choosing an optimization tool? Start with the shared solver-selection and agent guide or the optimization ecosystem overview. This distribution exposes the Rust optimizers to Python. For parallel Python callbacks, compare with fcmaes (fast-cma-es); the job worker and experimental surrogate are source-only components, not part of this wheel.

fcmaes-rust provides Python access to fast, parallel, gradient-free optimization algorithms implemented in native Rust. The optimizer core is pure Rust and does not compile, link, or load the historical C++ backend.

Installation

python -m pip install fcmaes-rust

The initial release supports CPython 3.11 through 3.13 on the platforms for which wheels are listed on PyPI.

To build from source, install Rust 1.88 or newer (https://rustup.rs), then either let pip build the source distribution (python -m pip install --no-binary fcmaes-rust fcmaes-rust) or build a checkout of the repository:

git clone https://github.com/dietmarwo/fcmaes-rust
cd fcmaes-rust
python -m pip install .

The Python package depends on NumPy and SciPy and, at build time, on crates.io crates only.

Quick check

import fcmaes_rust

print(fcmaes_rust.__version__)
print(fcmaes_rust.phase1_build_info())

Optimizers

The package exposes one-shot and ask/tell interfaces for Differential Evolution, active CMA-ES, CR-FM-NES, PGPE and BiteOpt, plus Dual Annealing, MODE, MAP-Elites, the Diversifier, independent retry, coordinated retry and weighted multi-objective retry.

The functions currently return low-level NumPy arrays, tuples or dictionaries. See the Python binding guide for signatures, examples, parallelism behavior and result layouts. Every exported function, stateful method, and property also provides an installed runtime docstring, for example help(fcmaes_rust.optimize_de) or help(fcmaes_rust.MODE). SciPy is a runtime dependency because retry callbacks receive a public scipy.optimize.Bounds object.

import numpy as np
import fcmaes_rust

def sphere(x):
    return float(np.dot(x, x))

dim = 4
empty = np.empty(0, dtype=np.float64)
x, value, evaluations, iterations, stop = fcmaes_rust.optimize_de(
    sphere,
    dim,
    np.full(dim, -5.0),
    np.full(dim, 5.0),
    empty,
    empty,
    np.empty(0, dtype=np.bool_),
    seed=7,
    max_evaluations=4_000,
    popsize=20,
)
print(value, evaluations, x)

Python callbacks must reacquire the GIL. Native Rust objectives offer the strongest parallel scaling; cheap pure-Python callbacks are usually callback-bound.

License

MIT

Metadata

Release files for fcmaes-rust 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fcmaes-rust 0.2.0
File Size Uploaded Provenance
fcmaes_rust-0.2.0.tar.gz 197.4 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for fcmaes-rust 0.2.0
File
fcmaes_rust-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
fcmaes_rust-0.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
fcmaes_rust-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
fcmaes_rust-0.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
fcmaes_rust-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
fcmaes_rust-0.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
fcmaes_rust-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
fcmaes_rust-0.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
fcmaes_rust-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
fcmaes_rust-0.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
fcmaes_rust-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
fcmaes_rust-0.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
fcmaes_rust-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details

Total release size: 9.4 MB

Release files / fcmaes_rust-0.2.0.tar.gz

Download URL fcmaes_rust-0.2.0.tar.gz
Size 197.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0816a7850488f3871d9662d1fa1f5934c55740092b0d9e4e786b375853fa69f4
BLAKE2b-256 checksum
How to use checksums
7f37cfcdb67a215cf09cf9a7d3b2e576175d1406efd8074bad8beed813da3df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fcmaes_rust-0.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 752.1 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
23f112fe45002ca0bb5dcb71ce66e9b94f04a17bd449868e2ff2f91e7b09739a
BLAKE2b-256 checksum
How to use checksums
efbda9c16202878bf5d6c21ecb3202edcf16515d57e9d4fc6347288e64cdc485
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp313-cp313-win_amd64.whl

Download URL fcmaes_rust-0.2.0-cp313-cp313-win_amd64.whl
Size 710.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
939cac273bde72732644ca20cdcfdd83a5efa7d08d25d7d0252a4a8b8a31628d
BLAKE2b-256 checksum
How to use checksums
8c5574c6f130c84b8a8b0dcbb8d812bb499ab0b46bdf950ee6d3be8fc22d9c10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 751.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b7261e7601a6ee2355297ab9e108b74ef43f6b0f11886c367d40318b1dc1f8ff
BLAKE2b-256 checksum
How to use checksums
6d066fc39390041c7d6dff3c6e5ddb2719b4258e0f5f4c1ae2cfadf74b20c27f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL fcmaes_rust-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 648.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
456a1ead7f7be5d056cba3e658ba860bb60c4c46b4329535a4ea069ce04a700c
BLAKE2b-256 checksum
How to use checksums
08f517e2fad2d63f622fe55cb7f5270f64f2cba8864cdbf3db0538a5a94d6459
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 711.2 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ce20cb5867537bd9c29158ab349324898a52eb76dd6fde67490800a7cb2472ab
BLAKE2b-256 checksum
How to use checksums
b73e1ebfe94fc129c3ef1bf0a2d94e913670a3426afc08e58da9b3542479cffe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp312-cp312-win_amd64.whl

Download URL fcmaes_rust-0.2.0-cp312-cp312-win_amd64.whl
Size 711.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
213e12467517570aaa930ecb268632e3f7db931584be00cb6aff0624c38641f4
BLAKE2b-256 checksum
How to use checksums
fb1afe600ea7e7675438cdf700017b47378db40ace0577b766ef051458a65f70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 752.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6c1bc11355782d3076f115dd179fa8cd280ff3c6596c90fb8791ede51f29593e
BLAKE2b-256 checksum
How to use checksums
8cc4cc78e714255b02583ce4218f343e7c1c0af65e02651fbf407111c8d5953b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL fcmaes_rust-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 649.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7adc20fccb9dcf09afefe7535b6a4a2158a4fedbbdace65c34313850256de2bd
BLAKE2b-256 checksum
How to use checksums
466ac47b52d1702b94846fcb0a377675fef6d193b443e6872efdef01a0890a2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 711.6 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
da62f28ac61c284748d5f22b9460bf9651024295d97b7f7d2437bfe8019f33b4
BLAKE2b-256 checksum
How to use checksums
dd9afab7a27eb3483816a614c2a90d035bda8fdb66aea65d1a688e4675786a60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp311-cp311-win_amd64.whl

Download URL fcmaes_rust-0.2.0-cp311-cp311-win_amd64.whl
Size 708.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5e946ff0f6f8eb4dc761bf873097aadf4d099e2a30874754b6b185155bb0adea
BLAKE2b-256 checksum
How to use checksums
e2041d191c7d858cb6c4c60c8977e2a8c2b1df0cc30f9f2ef3323536aff79318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 751.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d289e8e0ccf473889e41b19ea3a39c91b60d4dda3f34a64bfd44b4d8bdcf8d08
BLAKE2b-256 checksum
How to use checksums
b5ee8ca2d11e67afc227a45d9faed0d043c0133b7e03442ff46e3e226cb19840
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL fcmaes_rust-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 649.6 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7c165c983314e8033fcfeb5ab433b11bdbab348c03aac633fdee67f2983a9ede
BLAKE2b-256 checksum
How to use checksums
8e4a2b5f67bf27a0d95ebc4b27ae97b4d699888c3555ec868b7785740a479dec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcmaes_rust-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL fcmaes_rust-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 712.7 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
91c6faa8f46b9311e808b13aab538d12000a93dc6e9924b36dac117adf870f5e
BLAKE2b-256 checksum
How to use checksums
016711b5c9a82d5ba74385639e05665b2ee31d5532dd2a360f94eec7068b7540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for fcmaes-rust 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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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

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