I’ve been working on implementing the draft phase 1 sharding spec] in Rust over at https://github.com/Drops-of-Diamond/Diamond-drops. However I’ve come across a barrier: things like msg.value and msg.sender aren’t supported, and I can’t find it in any crates. So my options are: write it in Solidity or Vyper and find a way to convert it to Rust, use ewasm, or write something that can compile Rust to EVM bytecode.

Update 1: I talked with geth-sharding, who are using Solidity for the sharding manager contract. Developing a sharding manager contract via Rust and EWasm are not that high a priority now, and rewriting it later shouldn’t be too much of a hassle compared to rewriting it now, since it will still need to comply with the same ABI.

Update 2: an SMC is going to be written in Vyper, and I’m keen to start work on it. If anyone wants to work on it with me, feel free to say so on https://gitter.im/Drops-of-Diamond/Development.