Why Rust?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • rand

    A Rust library for random number generation.

  • falcon.py

    A python implementation of the signature scheme Falcon

    Here are a few prominent cryptographers in the 'cryptocurrency' scene:

    Matthew Green from John Hopkins University [0]

    Zhenfei Zhang of Algorand and co-creators of NIST post-quantum cryptography standard for digital signatures [1]

    Nadim Kobeissi creator of cryptocat now created Capsule Social [2]

    Silvio Micali, Turing Award Winner for his work on Zero-Knowledge Proofs [3]

    So, I'm afraid that there are some credible people like those above who have a significant and documented background in cryptography who are also working in the cryptocurrency industry.

    [0] https://blog.cryptographyengineering.com/

    [1] https://falcon-sign.info/

    [2] https://nadim.computer/

    [3] http://people.csail.mit.edu/silvio/

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • Proton

    Compatibility tool for Steam Play based on Wine and additional components

    I don't know that I have a better suggestion, but the lack of friction on adding new dependencies makes for really hairy dependency graphs. For example, I really loathed having to write this[1] when all I did was write a gstreamer plugin in Rust. I'm not even confident that I got it all the licensing right, and I surely didn't vet every single library in the graph. In languages where adding dependencies is more difficult, I think things tend to be simpler and thus, more verifiable. But it's also simply harder. I don't know which solution I like better.

    [1] ~75 lines of library authorship copyrights https://github.com/ValveSoftware/Proton/blob/proton_7.0/dist...

  • egui

    egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

    So far so good!

    Putting the UI in a canvas elements have some distinct drawbacks (https://github.com/emilk/egui/tree/master/crates/eframe#prob...) but for us it is definitely worth it. Having one unified codebase for our web app and native app, and having it all in Rust, is just amazing.

    We're currently working on a 3D renderer based on wgpu (https://github.com/gfx-rs/wgpu) that we will likewise use for both web and desktop.

  • wgpu

    Safe and portable GPU abstraction in Rust, implementing WebGPU API.

    So far so good!

    Putting the UI in a canvas elements have some distinct drawbacks (https://github.com/emilk/egui/tree/master/crates/eframe#prob...) but for us it is definitely worth it. Having one unified codebase for our web app and native app, and having it all in Rust, is just amazing.

    We're currently working on a 3D renderer based on wgpu (https://github.com/gfx-rs/wgpu) that we will likewise use for both web and desktop.

  • rust-dominator

    Zero-cost ultra-high-performance declarative DOM library using FRP signals for Rust!

    You shouldn’t ever need to deal with OsString itself on wasm32-unknown-unknown, since that target basically just doesn’t cover functionality that needs it, but the actual situation is genuinely worse than OsString: Rust insists on valid Unicode (as is right and proper), but the web suffers from the affliction of ill-formed UTF-16. If you blindly convert from JavaScript strings to Rust strings, you will encounter data and functionality loss in a few situations, in practice always involving IME (or similar) text entry on Windows. The first bug I filed about this: https://github.com/Pauan/rust-dominator/issues/10, and you can follow further links if you’re interested. IE and Edge used to be largely immune to this, but IE is dead and I suppose Edge will have regressed in this way with the Chromium migration, since the bug filed in Chromium a few years ago <https://bugs.chromium.org/p/chromium/issues/detail?id=949056> has languished. (Firefox too, with <https://bugzilla.mozilla.org/show_bug.cgi?id=1541349>.) In the worst-case scenario, careless use like was the case in rust-dominator will mean that some users typing with particular software in a language that’s outside the Basic Multilingual Plane will not be able to type anything.

  • accesskit

    UI accessibility infrastructure across platforms and programming languages

    So-so. There is an experimental screen reader you can enable in the "Backend" panel of egui.rs.

    There is ongoing work to integrate AccessKit (https://github.com/AccessKit/accesskit) which will improve things significantly.

  • 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.

  • arewegameyet

    The repository for https://arewegameyet.rs

    er, there's another one for Rust and game dev

    https://arewegameyet.rs/

  • rust

    Empowering everyone to build reliable and efficient software.

    Most benefits of Rust are true, except in some cases it does not allow you to compile an absolutely valid and safe program like here https://github.com/rust-lang/rust/issues/47680 - unfortunately you don't have freedom of code design decisions! I see some possible problems with refactoring, extending logic and functionality, and lots of issues with async code design and readability.

    For me, Rust looks like a temporary step before the next language.

  • vite

    Next generation frontend tooling. It's fast!

    It's pretty fast with modern tooling. Try vite or swc if you have the time and inclination. vite builds one of my large $DAYJOB projects in ~45 seconds (which is insane compared to how webpack performed).

    If you don't need vite's extensibility, you can go with 'pure' esbuild and slim down transpilation + minification + bundling to only a few seconds.

    https://vitejs.dev

    https://github.com/swc-project/swc

    https://github.com/evanw/esbuild

  • swc

    Rust-based platform for the Web

    It's pretty fast with modern tooling. Try vite or swc if you have the time and inclination. vite builds one of my large $DAYJOB projects in ~45 seconds (which is insane compared to how webpack performed).

    If you don't need vite's extensibility, you can go with 'pure' esbuild and slim down transpilation + minification + bundling to only a few seconds.

    https://vitejs.dev

    https://github.com/swc-project/swc

    https://github.com/evanw/esbuild

  • esbuild

    An extremely fast bundler for the web

    It's pretty fast with modern tooling. Try vite or swc if you have the time and inclination. vite builds one of my large $DAYJOB projects in ~45 seconds (which is insane compared to how webpack performed).

    If you don't need vite's extensibility, you can go with 'pure' esbuild and slim down transpilation + minification + bundling to only a few seconds.

    https://vitejs.dev

    https://github.com/swc-project/swc

    https://github.com/evanw/esbuild

  • egui

    egui: an easy-to-use immediate mode GUI in pure Rust (by mwcampbell)

    Anyone who's interested in the AccessKit integration can play with my work-in-progress branch: https://github.com/mwcampbell/egui/tree/accesskit

    It's currently Windows-only, and I'm working on the big missing feature, which is text editing support.

  • ada-spark-rfcs

    Platform to submit RFCs for the Ada & SPARK languages

    > I did some ADA in the past and yes, it is a nice language, but it lacks the modernity and a dynamic community like Rust. ADA did received some nice update to its specification, but, just like C++, it struggle / cannot really fit the latest innovation in programming language that easily.

    I'm still learning both Ada and Rust, nevertheless I humbly disagree. The more I learn it and other "old" languages the more it looks to me like "modern" ones rediscover things that have been present in other languages for years.

    The really significant difference I can see for now is that Ada is not focused so strongly on functional programming paradigm. Rust borrow checker is a strong success of course and was another significant difference, but latest SPARK got borrow checking capabilities too, AFAIK.

    While Ada's open-source community is smaller, I find it as energetic and devoted to improving the ecosystem as Rust's. I have no idea about closed-source community, but in the past 4 years ArianeGroup [1], Airbus [2] and Nvidia [3] talked about choosing Ada for their high-integrity applications.

    > And to be fair, it is fine. ADA is very much a "committee" language (its spec are ISO/IEC) instead of a "community" language (all the spec and rfc of Rust are on github and anyone can easily discuss them).

    You can discuss Ada/SPARK RFCs here: https://github.com/AdaCore/ada-spark-rfcs . I think I once saw on Ada forum or chat that someone proposing changes to the language was simply invited to talk to people working on the standard, so it doesn't look like the language is developed in isolation or something.

    > This makes it so that ADA doesn't get the attention, and the rapidity of innovation, that a language like Rust does, but ADA is mostly made for program that will need to be maintained in critical operations for decades with the code being maintainable and compilable far into the future.

    I think that Ada adopted quiet quickly to standards set by Rust: lower entry barrier toolchain, compelling licensing, library distribution, RFCs, etc. And in terms of language features, in many areas it's not only on par, but ahead of competition. So you're less likely to see lots of changes, but they do happen nevertheless. I'm not saying Ada is perfect, of course. There are parts of it that other languages do better. No shame in that.

    IMHO, the reason Ada is unknown to many people is a combination of its past, myths surrounding it, and general trend of people to follow trends. ;) But I currently find Ada/SPARK even more compelling option than Rust, even though I like both.

    [1] https://www.facebook.com/ArianeGroup/posts/2872955946126067

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

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