MPI bindings for Rust


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).


Now also with hosted documentation.


Great, i’m just looking for such a binding. But after i tried your example, build failed probably because you forgot to commit it to


Oh, sorry about that. My plan was to deploy to from Travis-CI but I am still butting heads with the service. You can still pull in the dependency from GitHub:

git = ""

I have changed the README to describe this mode of use.


This is pretty interesting. I’d love to see higher-level libraries for distributed computing at some point. Your bindings should make it fairly straight-forward to build upon. I’m thinking about something akin to the Julia programming language, even though that requires a fair bit of tooling as well.