compas_fab_native
A planning backend for compas_fab whose work happens in a compiled Rust core inside the Python process: no Docker, no PyBullet, no ROS.
It is experimental. The API is the usual compas_fab backend API, but what it supports is
limited and may change. The documentation covers
what it does, its trade-offs and how it works; SPIKE.md has the design notes,
measurements and open issues.
Install
pip install compas_fab_native
Wheels are available for Linux (x86_64), macOS (Intel and Apple Silicon) and Windows (x64), for Python 3.9 and later. Elsewhere, pip builds from source, which needs a Rust toolchain.
Use
from compas_fab.backends import UR5Kinematics
from compas_fab_native import NativePlanner
planner = NativePlanner(UR5Kinematics())
More examples are in docs/files/.
Repository layout
| Path | Contents |
|---|---|
crates/ |
Rust workspace: the core (motion_core), exact checks and sphere fitting (motion_exact), GPU kernels (motion_gpu), benchmarks (motion_bench) and Python bindings (motion_py) |
src/compas_fab_native/ |
The compas_fab backend: NativePlanner and the robot model translation |
tests/ |
Python tests of the backend; the Rust tests live in each crate |
docs/ |
Documentation, examples and diagrams |
demo/live_viewer/ |
Live browser demo |
scripts/, fixtures/, results/ |
Benchmark tooling, robot and scene data, and recorded results |
Development
With a Rust toolchain installed:
pip install -e ".[dev]" # builds the extension; rerun after changing Rust code
python -m pytest
cargo test --workspace --exclude motion_py --release
ruff check && ruff format --check
Documentation: pip install -e ".[docs]", then mkdocs serve.
Releasing
- Run the prepare release workflow (Actions tab) with the kind of bump. It opens a release pull request that bumps the version and dates the changelog.
- Review and merge it. The release workflow then builds and tests the wheels and the source distribution, publishes them to PyPI, creates the GitHub release and deploys the documentation.
License
MIT, see LICENSE. Third-party code, data and algorithms used here are credited
in NOTICE, with their licenses in licenses/, including those of
the Rust crates compiled into the extension.
Metadata
Release files for compas-fab-native 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 |
|---|---|---|---|---|
| compas_fab_native-0.1.0.tar.gz | 137.7 kB | With provenance | Details for compas_fab_native-0.1.0.tar.gz |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| compas_fab_native-0.1.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details for compas_fab_native-0.1.0-cp39-abi3-win_amd64.whl |
| compas_fab_native-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ x86-64 | Details for compas_fab_native-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl |
| compas_fab_native-0.1.0-cp39-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) | Details for compas_fab_native-0.1.0-cp39-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl |
Total release size: 7.1 MB
Release files / compas_fab_native-0.1.0.tar.gz
| Download URL | compas_fab_native-0.1.0.tar.gz |
|---|---|
| Size | 137.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b648e3d19957337adfd79f797f3cc34d094f6bf006fbed5169089f07e2cfea09
|
|
BLAKE2b-256 checksum How to use checksums |
9d6d542ad3f4f163924ce6b0d26db30814a03a144f77f960f7a7a8939d37bba8
|
| 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 Nov 12, 2026.
Transparency logRelease files / compas_fab_native-0.1.0-cp39-abi3-win_amd64.whl
| Download URL | compas_fab_native-0.1.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 923.0 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5b6edd25e15f7086af07d337d29040ec17c93a7fa7fac404904ffcb9036dd4a7
|
|
BLAKE2b-256 checksum How to use checksums |
c5f4c760680f274626b60642b8749a6843e59b8f0ddafe220cc4514475d83b57
|
| 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 Nov 12, 2026.
Transparency logRelease files / compas_fab_native-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl
| Download URL | compas_fab_native-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
53192d9374b1085ef7077c304c571690357d9e00c6b2842d34739e95dce9e916
|
|
BLAKE2b-256 checksum How to use checksums |
f56ae918d5409f73b153c54e78ac0c0938f96ff75b6a4b3a80df9e47a67902ae
|
| 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 Nov 12, 2026.
Transparency logRelease files / compas_fab_native-0.1.0-cp39-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl
| Download URL | compas_fab_native-0.1.0-cp39-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ac4fc2a75326b93f2a0514b69191e45106cb613a53cb1feb23d45daf221e1377
|
|
BLAKE2b-256 checksum How to use checksums |
5f2549f857b52c348ba4987c098975d901cea74162a3fb7423d9473678c3f6f8
|
| 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 Nov 12, 2026.
Transparency logSecurity for compas-fab-native 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 4 files in this release have been uploaded with provenance metadata.
Attestation for compas_fab_native-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 Nov 12, 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.