New year, new Rust! What are you folks up to?
Constant-Q transform, feedback rendering, particle fields for MuTate
CQT and particles will make ML nodes cool. Feedback rendering is a pre-req for turning visual output into network feedback.
This is the 5th week working on the same "blazingly fast" concurrent ordered map project and replying to this post :'D , and I have somehow managed to surpass the performance in MOST benchmarks against original C++ implementation, std's RwLock<BTreeMap> and other popular concurrent ordered map crates (scc:TreeIndex, crossbeam-skiplist etc) that are currently available O.O
Implement reading 64 MiB to Native Messaging hosts.
Completed:
- QuickJS
- AssemblyScript
- Rust
- Node.js (unoptimized)
- Bytecode Alliance's Javy (unoptimized)
Todo:
- C
- C++
- Python
- Bash
- Static Hermes
- SpiderMonkey (
jsshell) - V8 (
d8) - txiki.js
Then back to working on implementing a WebTransport server in the browser. The non-trivial part the above gives a little break from.
Trying to implement an HTTP cache, I have never written anything like this, so the progress is really slow ![]()
maybe by the end of this month I will have some basic implementation done. Fingers Crossed
Improving my calendar application for Linux
How to transpile the crystal-facet-uml program from c99 to rust?
I was experimenting a bit with crust, c2rust, Copilot-AI and wondering how difficult an own C-parser an be... - lets see where I end up with...
Btw: Rust is so amazing! This simple error message today saved me hours of frustrating debugging:
| ^^^^^^^^^^^^^ borrowed value does not live long enough
Implementing Wasm v3 support in my .wasm parser
In the last few days I made a Bevy space invaders clone with a lot of help from Claude Code: GitHub - StefanSalewski/invaders: A simple Bevy Space Invaders clone
The purpose of this exercise was mainly to learn more about the use of AI tools in the terminal, and also to learn a bit more about the Bevy game engine.
Claude has generated all the Bevy boilerplate code, and even most of the game logic. They got most right, even the directed shooting in levels > 3, which is not that trivial. Only for the double fire it made a small mistake, which was easy to detect for me: They used initially for the second, delayed shot, the old invaders position of the first shot. After I told them the error, they fixed it without problems. The code has 800 lines and would look mostly identical if typed in manually by me.
Playing the game is actually some fun, mostly due to the AI sound effects created with https://elevenlabs.io/sound-effects. I am using my new game-controller, but the keyboard can be used as well.
That may be, but it took 10 minutes to compile with all the cores on my macbook spinning and the target directory was over 1Gb in size - compare that to the original 1978 game ![]()
File sizes are indeed the point that worries me the most about Rust. Build directories are typically multiple GB in size, and the executables hundreds of megabytes -- I think for this simple space invaders the executable is about 130 MB. I know that the reason is, that Rust uses currently static linking, and that static linking has some advantages. But imagine we would rewrite most of the small tools on our computers in Rust -- we would need an SSD orders of magnitude larger.
For the compile times: Bevy stuff is typically a few minutes for the first compile on my 8 core AMD box, and incremental compilation is typically only a few seconds, that is quite good. I started programing when the compiler and libs were loaded from floppy disk on the Amiga 1000 or Atari ST, or when we entered our Pascal code in first year at University on a teletype device, and the mainframe took around one minute to build our tiny exercises.
I have updated the game to the latest, just released Bevy 0.18 and added to Cargo.toml
[profile.release]
strip = true # Automatically strip symbols from the binary.
opt-level = "z" # Optimize for size.
lto = true
panic = "abort"
Now the total required disk space is 60 MB -- I added the instructions for removing the unneeded artifacts to the README file.
Nice - that 60MB is much better of course.
For comparison, I think the original game was just 8KB. You can find the ROM if you google it.
Here is a C emulator (2724 LOC) that reads that ROM and interprets it. It is the original game.
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.