Skip to content

Move to maturin as a Build System#955

Open
riesentoaster wants to merge 12 commits into
mainfrom
chore/manturin
Open

Move to maturin as a Build System#955
riesentoaster wants to merge 12 commits into
mainfrom
chore/manturin

Conversation

@riesentoaster

Copy link
Copy Markdown
Collaborator

Reason: scikit-build-core was just creating too many problems. We still want a parallel build. As a nice side effect, this also prepares the ability to write hot-path performance-critical parts in Rust.

Changes:

  • Build the parser with cargo's cc module
  • Write a small Rust wrapper around the C++ parser to make it accessible to Python
  • Introduce a dummy Rust function to show access for future functions
  • Ensure type synchronization between Rust and Python
  • Remove the no longer needed FANDANGO_SKIP_CPP_PARSER (and FANDANGO_REQUIRE_BINARY_BUILD) — we always build on developer machines and will have to do this as soon as we move anything serious to Rust; consumers download binaries anyway, they don't need the toolchain

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

🐰 Bencher Report

Branchchore/manturin
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
milliseconds (ms)
(Result Δ%)
Upper Boundary
milliseconds (ms)
(Limit %)
tests/test_benchmarks.py::test_generate_with_single_hard_constraint📈 view plot
🚷 view threshold
1,464.75 ms
(-23.76%)Baseline: 1,921.33 ms
2,124.20 ms
(68.96%)
tests/test_benchmarks.py::test_generate_with_single_soft_constraint📈 view plot
🚷 view threshold
68,989.80 ms
(+22.97%)Baseline: 56,103.05 ms
87,573.95 ms
(78.78%)
tests/test_benchmarks.py::test_init_fandango📈 view plot
🚷 view threshold
136.58 ms
(-10.28%)Baseline: 152.23 ms
166.84 ms
(81.86%)
tests/test_benchmarks.py::test_parse_spec📈 view plot
🚷 view threshold
136.94 ms
(-10.51%)Baseline: 153.03 ms
166.60 ms
(82.20%)
🐰 View full continuous benchmarking report in Bencher

@riesentoaster

Copy link
Copy Markdown
Collaborator Author

(CodeQL is still broken for now because it can no longer auto-detect the build system. We would need to either just drop it or provide a custom config, but that's definitely doable.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant