Hello fellow Rustaceans. I have recently been working on bindings of the Message Passing Interface (MPI, a message-passing style concurrency library often found on supercomputers) for Rust and feel ready to publish the current state of affairs. Here goes: rsmpi.
Unlike the existing projects rust_mpi and ompi-rust, rsmpi
- tries to be portable between different MPI implementations. I currently use bindgen to create Rust declarations of functions and types of the MPI C binding and port constants / macros by hand. So far I have successfully tested this method against OpenMPI and MPICH.
- uses traits a lot. Well, maybe I overdid it a bit.
At this stage, I would be happy for some feedback and maybe even contributions if there is any interest in focussing efforts (the current standard does have 868 pages after all).