<story><title>AutoCXX: Safely call C++ from Rust with auto generated bindings</title><url>https://github.com/google/autocxx</url></story><parent_chain><item><author>fluffy87</author><text>I wonder how it can auto generate safe bindings for C++.&lt;p&gt;To do that, it would essentially need to literally prove that the C++ code is thread and memory safe, which is an open research problem at
Best, and probably impossible since it requires solving the halting problem.&lt;p&gt;If it can do that, then the actual binding generation would be the most uninteresting part of this work.</text></item></parent_chain><comment><author>steveklabnik</author><text>See &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dtolnay&amp;#x2F;cxx&amp;#x2F;issues&amp;#x2F;1&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dtolnay&amp;#x2F;cxx&amp;#x2F;issues&amp;#x2F;1&lt;/a&gt; for some of this debate.</text></comment>
<story><title>AutoCXX: Safely call C++ from Rust with auto generated bindings</title><url>https://github.com/google/autocxx</url></story><parent_chain><item><author>fluffy87</author><text>I wonder how it can auto generate safe bindings for C++.&lt;p&gt;To do that, it would essentially need to literally prove that the C++ code is thread and memory safe, which is an open research problem at
Best, and probably impossible since it requires solving the halting problem.&lt;p&gt;If it can do that, then the actual binding generation would be the most uninteresting part of this work.</text></item></parent_chain><comment><author>yoshuaw</author><text>I read &amp;quot;safely call&amp;quot; as &amp;quot;does not require `unsafe {}` to call&amp;quot;. Invariants will still need to be manually upheld to ensure the C++ code will work as expected.</text></comment>