misra-rust VS cxx

Compare misra-rust vs cxx and see what are their differences.

misra-rust

An investigation into what adhering to each MISRA-C rule looks like in Rust. The intention is to decipher how much we "get for free" from the Rust compiler. (by PolySync)

cxx

Safe interop between Rust and C++ (by dtolnay)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
misra-rust cxx
8 97
112 5,505
0.0% -
0.0 9.3
almost 3 years ago 6 days ago
Rust Rust
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

misra-rust

Posts with mentions or reviews of misra-rust. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-28.
  • United States White House Report on Memory Safe Programming [pdf]
    5 projects | news.ycombinator.com | 28 Feb 2024
    MISRA and Ferrocene are not really related.

    MISRA is, as you say, a set of rules for writing C code, that restrict what you can do.

    Ferrocene is a qualified compiler. You write any normal Rust code you want: it's still the upstream Rust compiler. There are no restrictions.

    Incidentally, someone has compared what MISRA does to what Rust does: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...

    Given that they can't repeat the MISRA stuff there, it's a bit disjoined, but it sure is interesting!

  • Misra C++:2023 Published
    4 projects | news.ycombinator.com | 17 Dec 2023
    A fun github repo: "what would MISRA look like applied to Rust" https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...

    (They're comparing with the C version, not the C++ version...)

  • Memory Safe Languages in Android 13
    7 projects | news.ycombinator.com | 1 Dec 2022
  • Ferrocene: Rust toolchain to safety-critical environments
    2 projects | news.ycombinator.com | 26 Jul 2022
    > There are huge swathes of MISRA which forbid things which not only aren't possible in Rust or SPARK

    I can't vouch for its accuracy, but https://github.com/PolySync/misra-rust

  • High Assurance Rust: Developing Secure and Robust Software
    4 projects | news.ycombinator.com | 28 Mar 2022
    When it comes to MISRA C, it is interesting to note how many (a majority) of its rules do not apply or have native enforcement[1].

    You might have also seen the AUTOSTAR Rust in Automotive Working Group announcement recently[2].

    [1]: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...

    [2]: for some reason the announcement was removed from the "News and events" site, https://webcache.googleusercontent.com/search?q=cache%3Ahttp... but it is still available as a PDF https://www.autosar.org/fileadmin/user_upload/20220308_RustW...

  • AUTOSAR announces new Working Group for Programming Language Rust in Automotive Software context
    1 project | /r/embedded | 15 Mar 2022
    There's actually already a comparison: https://github.com/PolySync/misra-rust/blob/master/MISRA-Rules.md
  • AdaCore and Ferrous Systems Joining Forces to Support Rust
    14 projects | news.ycombinator.com | 2 Feb 2022
    Rust makes quite a few things more rigorous (e.g. pairing allocations with deallocations and reference validity). It basically fulfills the job of a static analyzer baked into the language.

    It's also a vastly more analyzable language (in that its syntax is reasonably unambiguous and there's no dynamic runtime in play) and it can be integrated well.

    Toolchain quality (error reporting, built in testing, awareness of primitives like "libraries", etc.) is also a huge strong point.

    We're reasonably confident that we can use safe Rust as is, with strong guidance on how to do unsafe Rust.

    For a tangible investigation of that space, PolySync has a project that has a look at MISRA rules from a Rust perspective. https://github.com/PolySync/misra-rust/blob/master/MISRA-Rul...

    Ada is a good example here: the language has not evolved something like MISRA-C (it has evolved SPARK for formal verification, but I see that differently).

  • Resources for learning C/C++ coming from a Rust background
    1 project | /r/rust | 19 Jan 2022

cxx

Posts with mentions or reviews of cxx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-07.
  • Rust is having a positive effect in C/C++
    2 projects | /r/rust | 7 Dec 2023
    There are cxx and autocxx, what else do you propose to do?
  • Interoperability: Swift’s Super Power
    1 project | news.ycombinator.com | 22 Sep 2023
    I would like to see a comparison of how this compares to Rust. In terms of interoperability it has Cxx (https://cxx.rs) to offer safe bindings to C++ but also has great support for Android, Linux and many other systems. You don't even need to hack together Windows bindings (as explained in the blog post) because Microsoft offers official bindings (https://crates.io/crates/windows). I'm not sure if I'd call it a superpower if any potential interoperability has to be written to be used (compared to it already being available). Or rather, in comparison to what is interoperability a Swift superpower? Certainly not C++ or C which can be used in a far wider set of targets.
  • Rust Cryptography Should Be Written in Rust
    10 projects | news.ycombinator.com | 26 Aug 2023
    We selected Qt as a cross-platform solution. The C++/Rust interface is the clunkiest and ugliest part of the application, and rather complex because some state is shared between several windows in the GUI and several threads in the backend, and any component might modify that state at any time, and updates have to be transmitted to the other components without introducing inconsistencies. Using cxx [1] helped a little, though.

    The project began in 2020, and I'm not sure what I'd choose as a GUI framework today – definitely not Qt Widgets, though.

    [1] https://cxx.rs/

  • Link a C static library to rust cargo project
    2 projects | /r/rust | 24 Jun 2023
    If the build process for the C library isn't too involved I recommend using cxx bridge (https://cxx.rs/) and letting cargo handle the build and linking. cxx basically allows you to describe the bidirectional interface (although it sounds like you only need 1 direction, which is fine too) in Rust code and it provides a "good enough" API for compiling C code inside the build.rs file.
  • ffizz: Build a Beautiful C API in Rust
    6 projects | dev.to | 20 Jun 2023
    The tooling for the first kind -- calling Rust from another language -- is a bit less developed, and tends to rely on code generation that doesn't necessarily produce a natural C API. cbindgen, uniffi, cxx, and Diplomat all take this course.
  • Best practices in creating a Rust API for a C++ library? Seeking advice from those who've done it before.
    7 projects | /r/rust | 26 May 2023
    I would like to utilize OMPL's functionality in Rust code, so I want to call into OMPL C++ code somehow in Rust. I've seen two (non-mutually-exclusive) options so far: - rust-cpp, which allows you to write C++ code in Rust within the cpp!() macro. - cxx, which allows you to define both sides of the FFI boundary manually (as opposed to bindgen's automatic generation).
  • Hey Rustaceans! Got a question? Ask here (20/2023)!
    4 projects | /r/rust | 15 May 2023
    I'm not sure how to do this in cxx; issues like https://github.com/dtolnay/cxx/issues/447 suggest that this isn't settled yet?
  • Hello r/Rust! We are Meta Engineers who created the Open Source Buck2 Build System! Ask us anything! [Mod approved]
    9 projects | /r/rust | 3 May 2023
    I use non-vendored dependencies for the Buck build in https://github.com/dtolnay/cxx.
  • Microsoft is rewriting core Windows libraries in Rust
    6 projects | /r/programming | 29 Apr 2023
    There's also the cpp and cxx crates for doing C++/Rust interop, but they probably aren't appropriate to use in all cases. The C ABI is definitely the safest way to go unless you're really trying to marry Rust and C++ code bases, not just writing library bindings.
  • How can I use rust libraries in C++
    2 projects | /r/cpp_questions | 16 Apr 2023
    There's also cxx (can't vouch for it personally but it claims to make things a lot easier) https://github.com/dtolnay/cxx

What are some alternatives?

When comparing misra-rust and cxx you can also consider the following projects:

Welcome - Welcome to AeroRust- a Rust 🦀 in Aerospace 🚀 community & working group

cbindgen - A project for generating C bindings from Rust code

high-assurance-rust - A free book about developing secure and robust systems software.

rust-bindgen - Automatically generates Rust FFI bindings to C (and some C++) libraries.

creusot - Creusot helps you prove your code is correct in an automated fashion. [Moved to: https://github.com/creusot-rs/creusot]

autocxx - Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

rubble - (going to be a) BLE stack for embedded Rust

uniffi-rs - a multi-language bindings generator for rust

rust-verification-tools - RVT is a collection of tools/libraries to support both static and dynamic verification of Rust programs.

rust-cpp - Embed C++ directly inside your rust code!

wayland-ada - Ada 2012 bindings for Wayland

ritual - Use C++ libraries from Rust