from Hacker News

Zngur: A C++/Rust interop tool

by hkalbasi on 8/16/24, 11:27 PM with 32 comments

  • by benreesman on 8/17/24, 9:06 AM

    Having only glanced at the code I can’t offer much insight beyond “looks plausible”.

    A far more important point is to address is that any FFI story with C++ that’s well executed is going to be great for the Rust ecosystem, and historically the community’s commitment to C++ interop has seemed tepid at best.

    Even if one admits that Rust is strictly better than C++ for problems in the relevant domains, which seems an extraordinary claim that exceeds extraordinary evidence, there is still an ocean of C++ that we just can’t rewrite in even a decade, maybe not in a century.

    There are use cases where Rust is just strictly a better choice: anything with an attack surface like a shell or an SSH daemon, or probably even a browser is an obvious candidate for a language with better reasoning about common attack vectors. I trust my Rust user land a lot more than my C userland.

    But the “rewrite everything in Rust and push that via bad interop” is limiting the adoption of a cool language.

    I’m a big fan of efforts to be more incremental.

  • by boguscoder on 8/17/24, 2:37 AM

    Interesting. Any clue how this compares to https://cxx.rs/
  • by uneekname on 8/17/24, 2:56 AM

    I've been learning Rust and really enjoying it, but the primary downside (compared to C++) is the lack of access to the large, well-tested libraries that exist in C++. For example, my work would benefit from using the CGAL library [0], something that be nontrivial to rewrite in Rust. As much as I like Rust, at some point it's a better idea to use C++ to tap into libraries like that.

    Does anyone have thoughts about how mature Zngur/CXX/etc. are for a project like mine? Would it be reasonable to invest effort in creating those bindings? Thanks.

    [0] https://www.cgal.org/

  • by pjmlp on 8/17/24, 7:48 AM

    This kind of tools are great, as C++ isn't going away any time soon, and Rust is decades away to be relevant in some domains, specially those where C++ only recently took over C.
  • by mastax on 8/17/24, 3:53 AM

    Wow! Amazing how reframing the problem to exclude C++ types in rust makes it all so much more elegant.
  • by hi-v-rocknroll on 8/17/24, 9:38 AM

    Isn't Google offering funding for this exact topic?
  • by jdright on 8/17/24, 2:36 AM

    This is insane.

    Is this being used in some codebase? How stable is it? What are the plans for it?

    I have so many questions, but will stick with these for now.