Migrating Away from Rust

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

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. zfs

    OpenZFS on Linux and FreeBSD

    Try putting objects into two linked lists in C using sys/queue.h and C++ using the STL. Try sorting the linked lists. You will find C outperforms C++. That is because C’s data structures are intrusive, such that you do not have external nodes pointing to the objects to cause an extra random memory access. The C++ STL requires an externally allocated node that points to the object in at least one of the data structures. This is the downside of having a container manage your object lifetimes. At the same time, if you wish to avoid that, things will become even slower, because not just 1 data structure will have an extra random memory access for every object, but both data structures will have an extra random memory access for every object.

    That said, external comparators are a weakness of generic C library functions. I once manually inlined them in some performance critical code using the C preprocessor:

    https://github.com/openzfs/zfs/commit/677c6f8457943fe5b56d7a...

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. Fyrox

    3D and 2D game engine written in Rust

    Sorry but this engine had(s) problems rendenring a rectangle with alpha channel 3 months ago (I'm assuming it was fixed).

    Is it normal for Rust ecosystem to use software of this level of maturity?

    https://github.com/FyroxEngine/Fyrox/discussions/725

  4. Godot

    Godot Engine – Multi-platform 2D and 3D game engine

    > I failed to fairly evaluate my options at the start of the project.

    The more projects I do, the more time I find that I dedicate to just planning things up front. Sometimes it's fun to just open a game engine and start playing with it (I too have an unfair bias in this area, but towards Godot [https://godotengine.org/]), but if I ever want to build something to release, I start with a spreadsheet.

  5. rust-gc

    Simple tracing (mark and sweep) garbage collector for Rust

    > Rust can not represent the vast majority of allocations

    Do you mean cyclic types?

    Rust being low-level, nobody prevents one from implementing garbage-collected types, and I've been looking into this myself: https://github.com/Manishearth/rust-gc

    It's "Simple tracing (mark and sweep) garbage collector for Rust", which allows cyclic allocations with simple `Gc` objects. Can't vouch for that implementation, but something like this would be good for many cases.

  6. glicol

    Graph-oriented live coding language and music/audio DSP library written in Rust

    I completely understand, and it's not the first time I've heard of people switching from Bevy to Unity. btw Bevy 0.16 just came out in case you missed the discussion:

    https://news.ycombinator.com/item?id=43787012

    In my personal opinion, a paradox of truly open-source projects (meaning community projects, not pseudo-open-source from commercial companies) is that development seems to constantly branch out, lacking a unified roadmap. While this leads to more and more cool things appearing, there always needs to be a balance with sustainable development.

    Commercial projects, at least, always have a clear goal: to sell. For this goal, they can hold off on doing really cool things. Or they think about differentiated competition. Perhaps if the purpose is commercial, an editor would be the primary goal (let me know if this is alreay on the roadmap).

    ---

    I don't think the language itself is the problem. The situation where you have to use mature solutions for efficiency is more common in games and apps.

    For example, I've seen many people who have had to give up Bevy, Dioxus, and Tauri.

    But I believe for servers, audio, CLI tools, and even agent systems, Rust is absolutely my first choice.

    I've recently been rewriting Glicol (https://glicol.org) after 2 years. I start from embedded devices, switching to crates like Chumsky, and I feel the ecosystem has improved a lot compared to before.

    So I still have 100% confidence in Rust.

  7. rewrite

    Automated mass refactoring of source code.

    In the Java universe, there is OpenRewrite for this: https://github.com/openrewrite/rewrite

    eg: https://docs.openrewrite.org/recipes/java/migrate/joda/jodat...

    I occasionally notice libraries or frameworks including OpenRewrite rules in their releases. I've never tried it, though!

  8. SaaSHub

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

    SaaSHub logo
  9. gdnative

    Rust bindings for Godot 3

    It is indeed great for creating a prototype. After that, one can gradually migrate to Rust go benefit from faster execution times. The Rust bindings are in a pretty decent shape by now

    https://godot-rust.github.io/

  10. 747-400

    A Boeing 747-400 aircraft for X-Plane 11 & 12

    Stuff that hooked me:

    you integrate it tightly with the engine so it only does game logic, making files small and very quick and easy to read.

    platform independent, no compiling, so can modify it in place on a release build of the game.

    the "everything is a table" approach is very easy to concept mentally means even very inexperienced coders can get up and running quickly.

    great exception handling, which makes most release time bugs very easy to diagnose and fix.

    All of which means you spend far more time building game logic and much, much less time fighting the programming language.

    Heres my example of a 744 flight data recorder (the rest of the 744 logic is in the containing folders)

    https://github.com/mSparks43/747-400/blob/master/plugins/xtl...

    All asynchronously multithreaded, 100% OS independent.

  11. cargo-ui

    GUI for Cargo

  12. proposal-pattern-matching

    Pattern matching syntax for ECMAScript

    It has been proposed, but since there is all the process on how features get added into the standard.

    https://github.com/tc39/proposal-pattern-matching

  13. Bplus.jl

    A modern OpenGL 4.6 rendering framework, written in Julia.

  14. v

    Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

    Another language with such features, including sumtypes, is V (Vlang)[1].

    [1] https://github.com/vlang/v/blob/master/doc/docs.md#sum-types

  15. rewrite-clj

    Rewrite Clojure code and edn

    https://github.com/clj-commons/rewrite-clj is an absolute superpower for this kind of thing, if you were using Clojure. It always saddened me it doesn't get more exposure.

    As good as Rust is, I still feel there needs to be a "high-low" strategy for most biz/game code. You want to be able to depend on your low level abstractions, while constantly changing up how you fit them together.

  16. SaaSHub

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

    SaaSHub logo
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

  • Ask HN: Yo wants to build a game, I'm lost. What can I do?

    20 projects | news.ycombinator.com | 17 Jan 2024
  • ECS, Finally

    4 projects | news.ycombinator.com | 30 Dec 2023
  • “This Is a Disaster:” Game Developers Scramble to Deal with Unity’s New Fees

    2 projects | news.ycombinator.com | 12 Sep 2023
  • Non web-based crossplatform GUI frameworks focused on security

    2 projects | /r/rust | 27 Jun 2023
  • Is bevy the best option for a Rust based game engine (long term)?

    4 projects | /r/rust_gamedev | 31 May 2023