There are a few topics to discuss
How to provide C and C++ interface
If we can provide a spglib.h compatibility interface, then developing the Fortran equivalent would also be possible. Right now I know the link from CMake to rust is well developed, but I don't know about example of the inverse.
For compatibility purposes we also need a to provide some SpglibConfig.cmake files. This part should be relatively easy to develop using appropriate find_library and such.
Integrating CI coverage
At the minimum we would need coverage for cibuildwheel and various matrix test cases since now the rust version on the system is also a variable.
Packaging concerns
Rust has a more specific packaging guidelines, so it will be a bit more involved to maintain a rust-moyo and moyo package. One thing to note, is that even though rust tends to have static Cargo.lock dependencies, Fedora packaging does not vendor those dependencies and as such, in order to make distro packaging easier, we should track what is available there as well.
One particular issue is that if you use Cargo.lock to define the dependencies you use, you are implicitly responsible for tracking the dependent projects CVE (security issues).
There are a few topics to discuss
How to provide C and C++ interface
If we can provide a
spglib.hcompatibility interface, then developing the Fortran equivalent would also be possible. Right now I know the link from CMake to rust is well developed, but I don't know about example of the inverse.For compatibility purposes we also need a to provide some
SpglibConfig.cmakefiles. This part should be relatively easy to develop using appropriatefind_libraryand such.Integrating CI coverage
At the minimum we would need coverage for
cibuildwheeland various matrix test cases since now the rust version on the system is also a variable.Packaging concerns
Rust has a more specific packaging guidelines, so it will be a bit more involved to maintain a
rust-moyoandmoyopackage. One thing to note, is that even though rust tends to have staticCargo.lockdependencies, Fedora packaging does not vendor those dependencies and as such, in order to make distro packaging easier, we should track what is available there as well.One particular issue is that if you use
Cargo.lockto define the dependencies you use, you are implicitly responsible for tracking the dependent projects CVE (security issues).