cyxla
cyxla lowers JAX functions to StableHLO, compiles them with a PJRT plugin, and runs them from Cython extension modules without the GIL. It suits native libraries that call JAX functions thousands of times per second, such as the SCIP callbacks of JAX-CIP. The documentation has guides and the API reference.
Installation
The package and a plugin install from wheels, and nothing downloads at run time.
pip install cyxla[cpu]
Each extra installs the plugin of one platform:
| Extra | Platform | Plugin |
|---|---|---|
cpu |
Linux on x86-64 and arm64, macOS on arm64, Windows on x86-64 | cyxla-pjrt-cpu |
cuda12, cuda13 |
NVIDIA GPUs on Linux | JAX's jax-cuda12-pjrt or jax-cuda13-pjrt, with the CUDA libraries |
rocm7 |
AMD GPUs on Linux | JAX's jax-rocm7-pjrt, with ROCm from the system |
tpu |
Cloud TPUs | libtpu |
jaxlib links its own CPU client statically and ships no plugin library, which is why the CPU plugin is a separate package.
Example
import jax
import jax.numpy as jnp
import numpy as np
import cyxla as cx
program = cx.lower(lambda x: jnp.sin(x) * 2, [jax.ShapeDtypeStruct((3,), jnp.float32)])
executable, statistics = cx.compile_program(program)
(result,) = executable.run([np.array([0.0, 1.0, 2.0])])
The linear algebra of jnp.linalg works the same way, as the section on custom calls
explains:
matrix = np.array([[4.0, 1.0], [1.0, 3.0]])
program = cx.lower(jnp.linalg.cholesky, [jax.ShapeDtypeStruct((2, 2), jnp.float32)])
executable, _ = cx.compile_program(program)
(factor,) = executable.run([matrix])
assert np.allclose(factor, np.linalg.cholesky(matrix))
The first function that needs a plugin loads the default one, so a program needs no
setup call. JAX lowers to 32-bit types unless jax.enable_x64 is on, as it does without
cyxla. Arguments and results can be bool, 8 to 64-bit integers, float16, bfloat16,
float32, float64, complex64 and complex128.
Executable.run returns arrays with the shapes and dtypes of the outputs, and converts
arguments to the types that the program takes. It is for tests and interactive checks.
Extension modules call execute from cyxla/_runtime.pxd instead, as the next section
shows.
Extension modules
An extension module cimports the runtime and runs programs with execute, which takes
no GIL. On the CPU, inputs alias host arrays that the module fills in place, and outputs
are read from the buffers' memory, so an execution copies nothing beyond the arrays that
the caller passes. On other platforms every execution copies its inputs to the device
and its outputs back.
import cython
from cython.cimports.cyxla._runtime import ABI_VERSION, Input, ProgramSpec, execute
import cyxla
cyxla.check_abi(ABI_VERSION)
check_abi rejects a module that was compiled against declarations of another cyxla
version. Cython checks the signatures of shared functions itself, but not the layout of
structs such as ProgramSpec.
Host arrays for inputs come from aligned_memory, which takes a size in bytes, and go
back with free_aligned. The pair exists because Windows frees aligned memory with a
function other than free. Each Input names the PJRT element type of its array, such
as PJRT_Buffer_Type_F32 from cyxla._pjrt, and ProgramSpec.output_bytes holds the
size of each output, which Executable.output_bytes returns.
The build needs the PJRT header and the .pxd files, and cyxla.get_include() returns
their directories. A Meson build reads them like this, and tests/downstream is a
complete example.
cyxla_include = run_command(
python, '-c', 'import cyxla; print("\\n".join(cyxla.get_include()))', check: true,
).stdout().strip().split('\n')
# Pass cyxla_include[1] to Cython with -I, and cyxla_include[0] to the C compiler.
Downstream packages list cyxla in build-system.requires and pin it to a narrow
range, because a new version may change the declarations.
Plugins
A process loads one plugin. cx.lower picks a platform like JAX does, from the device
that the arguments are committed to, then jax.default_device, then the loaded plugin,
then jax_platforms, and last the CPU plugin if one is installed, then CUDA, ROCm and
TPU in that order. The program records the platform, and compiling it loads the plugin
for that platform. cx.initialize chooses a plugin or its options instead, and has to
come before that first use. cx.initialize(platform="cuda") asks for a platform, and
cx.initialize(Path("libpjrt.so"), platform="cpu") loads a library by path. python -m cyxla lists what it finds.
Each plugin comes with the options that PJRT_Client_Create receives, and options
adds to or replaces them:
cx.initialize(platform="cuda", options={"memory_fraction": 0.5})
The CPU client runs synchronously on one device, so executions stay in the calling
thread. The GPU clients do not preallocate most of the device memory, as JAX does by
default. Before it loads JAX's CUDA plugin, cyxla loads the CUDA libraries of the
nvidia wheels, the same way JAX does.
Other packages can provide a plugin with an entry point in the cyxla.plugins group.
The entry point names a module with PLATFORM, CREATE_OPTIONS and library_path(),
as cyxla_pjrt_cpu has.
Custom calls
Some JAX functions lower to custom calls, which are native functions that the program
runs. On the CPU, jnp.linalg and jax.scipy.linalg call the LAPACK kernels that
jaxlib ships. A PJRT plugin is a separate build of XLA that does not know them, so
loading the plugin registers jaxlib's typed FFI handlers with it by name. Programs with
cholesky, solve, svd, eigh, qr, lu, eigvals and the other linear algebra
functions then compile and run like they do in JAX.
A library with its own primitives registers a typed FFI handler with
jax.ffi.register_ffi_target, and cyxla passes it on to the plugin. Importing cyxla
mirrors every later registration, and loading the plugin registers the ones that JAX
already holds, so the order of the imports does not matter. A library that does not use
JAX calls cx.register_ffi_target with the same arguments. jax.export refuses custom
calls it has no compatibility promise for, so cx.lower takes the names of the targets
that the function may call.
import my_library
program = cx.lower(my_library.function, shapes, custom_calls=["my_target"])
The plugin accepts typed FFI handlers with an execute stage. It does not run the older
untyped custom calls (api_version=0) or the Python callbacks of jax.pure_callback
and jax.experimental.io_callback, and compiling a program with one raises an error
that names the target.
Disk cache
compile_program stores executables in the cache directory under a hash of their
StableHLO, the compile options and the plugin. A later run of the same program loads the
executable instead of compiling it. store_lowered and load_lowered keep lowered
programs under a key from cache_key, which includes the versions of JAX, cyxla and any
distributions that the caller names.
Environment variables
| Variable | Meaning |
|---|---|
CYXLA_PJRT_PLUGIN |
Path of a plugin that replaces the installed ones |
CYXLA_PLATFORM |
Platform to load when initialize gets none |
CYXLA_CACHE_DIR |
Directory of the disk cache, ~/.cache/cyxla if unset |
CYXLA_MIRROR_JAX |
Set to 0 to keep cyxla from mirroring the FFI registrations of JAX |
Limitations
- Buffers hold the dtypes listed above and no others, such as the 8-bit floats, 4-bit
integers and PRNG keys.
cx.lowerrefuses a function that uses them. TPUs do not supportfloat64, so programs for them fail to compile. - Custom calls need a typed FFI handler. Untyped custom calls and Python callbacks do not work.
- The GPU and TPU paths are tested up to client creation. CI has no GPU, so execution on one is untested.
- On Windows only the CPU plugin exists, since JAX publishes no native GPU plugins there.
Development
uv sync
uv run pytest
uv sync builds the CPU plugin package from ../cyxla-pjrt-cpu, which downloads its
archive once. Development builds trace lines in the Cython module, so its coverage is
measured too. The tests need 100% coverage.
CI has no GPU, so notebooks/colab_gpu_tests.ipynb
runs the CUDA plugin on a Colab GPU.
License
Hippocratic License 3.0. The vendored PJRT header is under XLA's Apache 2.0 license.
Metadata
Release files for cyxla 0.1.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 | Actions |
|---|---|---|---|---|
| cyxla-0.1.0.tar.gz | 215.0 kB | With provenance | Details for cyxla-0.1.0.tar.gz |
Built distributions (wheels)
Total release size: 2.6 MB
Release files / cyxla-0.1.0.tar.gz
| Download URL | cyxla-0.1.0.tar.gz |
|---|---|
| Size | 215.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7b8407d8cd00bf3091003c3ad35f88b056b67b16acb972473a9c1ef6a4fdf85
|
|
BLAKE2b-256 checksum How to use checksums |
646c0bb40723e218fbe58824ca6ba39334c4522bab90f1b4390357a2f61622e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp314-cp314-win_amd64.whl
| Download URL | cyxla-0.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 140.4 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e3120b50f5cae0ce8278467c4816e09dbb4509a42f140026b2b77550ea98fe01
|
|
BLAKE2b-256 checksum How to use checksums |
eb9aef2ea147510a9f7877aed87970ae4cd1285fb6441b7a85242787f0260cb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cyxla-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 162.6 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
dfa2a7c562618e023c836941d3bdf8c3b86d5bff3b7e184e3249bbb85d7bca3e
|
|
BLAKE2b-256 checksum How to use checksums |
9b205a36f481a014bd9ff24dcc943f7d6a480b7201c2001811413cbe2c79bef6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | cyxla-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 157.7 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
263ebefe18e0718a5c6e68bda147e553b79f22772def7ee3cf6f124117e84a1c
|
|
BLAKE2b-256 checksum How to use checksums |
736c24f72a29e1ed3ef17965476e0bc74eb1a0dff041dd78a103c1815bce8855
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | cyxla-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 146.5 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
06a3b2978fa96df024030286ae9905f0e976305173524ee116f96d6d69728c57
|
|
BLAKE2b-256 checksum How to use checksums |
95a790f5813ab8fa2f72dc914d86a21959b2904f0a1771119b719b8a7ce16646
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp313-cp313-win_amd64.whl
| Download URL | cyxla-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 138.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a9347089944443303a9748f9273cd8f54db2a90a2082dc60889d3b0f8fb9d6c8
|
|
BLAKE2b-256 checksum How to use checksums |
5b26acd3b61326d4755521d8c73fad7ae86dbbf56c60332db3520e00554a56e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cyxla-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 162.5 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
d7aec3f6782bbe4fd12fe8d674252ac5151493d8fe2b24ea2ff26c853800de5b
|
|
BLAKE2b-256 checksum How to use checksums |
533dd4c6beed6e754ad153cfc8286b0ec3c3f98e1a84e9f028b3476584b1571c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | cyxla-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 156.5 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
dd1e16c0d82e5ffae1698ea32b78cab28c726e0bc042cb6a2a5de9fddd6fbbf3
|
|
BLAKE2b-256 checksum How to use checksums |
e9f0f2a127cc5032eb4d1b825a4597e6daf3f903f65e4e06c61823436999fd9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | cyxla-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 146.1 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2a16d34df3fe71f546d03c36bce892241fb4d9983a1036d57b70a72592d55393
|
|
BLAKE2b-256 checksum How to use checksums |
7ee829689d78aa12d1c8a85c97fadaa0c415a3eeefa1adb362ca156f6e67fa1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | cyxla-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 138.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a7a57d8af9aaa7ff6ca99b41a25d8577946feff37c15d22316679600a4c8694f
|
|
BLAKE2b-256 checksum How to use checksums |
7e0dac58693e86ea75ab17aaf22f240ba9c1f6eecbce7d0dfe5bdd7e55d3145c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cyxla-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 163.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3e886d46a23bf7b9153e64191839b88901a18ad36ff7d1a2ea9de58cf9fc9ba2
|
|
BLAKE2b-256 checksum How to use checksums |
d58951bbf762b8acb9cdaed367e6ce96de95445051dd2df5ed31d8ce30516ed8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | cyxla-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 157.4 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
0e0db810bc42f8826c96150147e1549b6af38458d49b663d1962042155b1e263
|
|
BLAKE2b-256 checksum How to use checksums |
e7617340e8a521124a0199375baeaa8179e2d3588ddaab4a9739134efe32dd16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | cyxla-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 146.4 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
91b601903e9f41f004cfe4134a4af18e36671cfc039de720ca029fdfba925966
|
|
BLAKE2b-256 checksum How to use checksums |
3c60e700c810823e6b87e734c63ccb2c9f7e7c9aff6fea62e9d3810fda016108
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp311-cp311-win_amd64.whl
| Download URL | cyxla-0.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 141.7 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6bb71835b94b884f66372bbdc31027c408b86b684cbf37fd8d089e86a0fdf3f2
|
|
BLAKE2b-256 checksum How to use checksums |
71340c2511c62f12cd5fa5754fc9b26aead2d5b285ceeda297a9b0aa1675d4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | cyxla-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 165.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
39eb2db5d446578bd20c7163d6d7e7680c87189540e929b45d42a8a3b0ece1d7
|
|
BLAKE2b-256 checksum How to use checksums |
aecb3f0d2c28b2f45a14965304711f8cfee727854aa6abc9959d9c5015cd8de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | cyxla-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 161.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
231310e0bf2f3dc11e9567995a05280c429a3f01bbe5704de9747047984da332
|
|
BLAKE2b-256 checksum How to use checksums |
fed51619b12cdfc9f01813ee97135c5072b6519e5345f30337316d90ef6f4edc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / cyxla-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | cyxla-0.1.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 145.7 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
061eaf5abab9b2c15591e3dcaf6aee7ad201fdaaa15a535afbaebde11eb31c56
|
|
BLAKE2b-256 checksum How to use checksums |
f78acf6703394dbfa3f2eb7b3048eb336902a90875b4945d395dccbc4d21e367
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logSecurity for cyxla 0.1.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 cyxla-0.1.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 Oct 29, 2026.
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.