Skip to content

Switch from milksnake to a more modern approach for Python-Rust bindings #65

Description

@juhoinkinen

Milksnake is not maintained anymore and using it seems problematic at least with pyproject.toml: NatLibFi#7

Alternatives seem to be switch to setuptools-rust or Maturin. Maturin seems more widely used, but on my AI-assisted attempt to switch to Maturin Qwen3 actually pushed back and stated

maturin is primarily designed for PyO3-based projects. Your project uses CFFI for Python bindings (loading a C shared library via ffi.dlopen()). For maturin to work with CFFI, we'd need to load the bundled .so/.dylib at runtime rather than as a CFFI extension module. Alternatively, setuptools-rust would be a more natural fit since it integrates with your existing setuptools + CFFI setup. Would you like me to proceed with maturin + CFFI runtime loading, or would you prefer setuptools-rust as a more seamless modernization?

So maybe it would be better to use setuptools-rust instead.

Activity

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

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions