A nightly-only, feature-gated Rust experiment called "splat" explores more ergonomic function and method overloading for calling overloaded foreign functions, starting with C++. It comes from the Rust Foundation's Rust/C++ Interop Initiative, funded by Google, and is a mapping exercise to test how far Rust's trait system can be pushed before any formal feature proposal. There is no RFC yet, nothing changes for end-users today, and the design space remains open for community input via Zulip.

4m read timeFrom rustfoundation.org
Post cover image
Table of contents
The Rust/C++ Interop InitiativeContext for the wider communityContext for Rust end-users

Questions this post answers

What is the splat experiment in Rust and does it change how I call overloaded C++ functions today?

Splat is a nightly-only, feature-gated experiment from the Rust Foundation's Rust/C++ Interop Initiative that explores whether Rust's existing trait system can support ergonomic overload resolution for foreign functions, starting with C++. It has no RFC yet, is not headed to stable Rust soon, and changes nothing for end-users right now; today you still need manual boilerplate, traits, or uniquely named functions per overload. Developers tracking Rust and C++ interop progress can follow updates on daily.dev as the initiative evolves.

4 Impressions