Chromium accepting Rust in a clear move to copy what Mozilla have done, replace C++ source code

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
  • rust

    Empowering everyone to build reliable and efficient software.

    Interoperable ABI: https://github.com/rust-lang/rust/pull/105586

  • hspp

    hspp: An experimental library to bring Haskell Style Programming to C++.

    Yeah, C++ supports higher kinded types through template templates (I'm not sure why the other poster said it doesn't), however it quickly becomes messy and impractical. Here's a cursed library that attempts to support Haskell-style programming in C++. Here's an example where they implement a monad transformer using the only example of a template template template that I have ever seen in the wild.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • libCat

    🐈‍⬛ A runtime for C++23 w/out libC or POSIX. Smaller binaries, only arena allocators, SIMD, stronger type safety than STL, and value-based errors!

    It's worse in the standard library than it has to be. When I refactored my traits to minimize template instantiations and lean on concepts as much as possible, I measured over 30% improvement to clean build compile times. It's not possible for the standard to do this, because it would subtly change the API. For instance, you can't instantiate or take the address of a concept, but you can for a type-trait class. No reason you'd want to do that, but you can, so they can't "break" the standard library by optimizing this.

  • kani

    Kani Rust Verifier

    By making your code have some semantics (even panicking has defined semantics). C++ UB is characterized by having no semantics. Giving your code clear runtime semantics, a small-step description of what happens when you execute expression X, is what enables robust and provable static analysis in the first place. So indeed there are proof checkers, such as this, that allow you to ensure that code is panic free (i.e. bounds are actually never executed).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts