The second talk of our last #Bevy meetup is also live on YouTube now - Tristan talks about his indie game "Greenfeet Haven" in his talk "From Zero to Demo" - https://www.youtube.com/watch?v=_FIDuLV0ZsA #rustlang #gamedev 🦀🎮 @bevy
The second talk of our last #Bevy meetup is also live on YouTube now - Tristan talks about his indie game "Greenfeet Haven" in his talk "From Zero to Demo" - https://www.youtube.com/watch?v=_FIDuLV0ZsA #rustlang #gamedev 🦀🎮 @bevy
missed opportunity to name “compile_error” as “compile_err”.
Just ran into an interesting #cargo #rustlang workflow problem, that I am not sure how it is best avoided?
A project I work on is depending on strum
and strum_macros
. Due to a cargo update
multiple strum
versions now got unified and picked up by cargo hakari
, and only a single version is built. That's good.
A dependency I was using had a pattern as such:
use strum::EnumMessage;
use strum_macros::EnumMessage;
Which is totally fine!
With the unification, the features now also got unified. Which in this case meant that EnumMessage
is now present in the macro-scope in both strum
and strum_macros
.
Which means the above two lines cause an error with EnumMessage
being imported twice! Fun.
So the situation is that strum
is fine, as it is an additive feature. And the dependency is fine as well, as it itself doesn't use the 'derive' feature.
Another reason why this happens seems to be because we are using cargo-hakari
to have less cache-misses in our workspace. But once our workspace-hack crate added the derive feature it broke the build.
The final piece seems that a transitive dependency both:
derive
feature of strum enabledSo to me the full reproduction would be:
foo v0.1 (derive feature)
and foo v0.2 (no features)
cargo update
cargo hakari
adds for both 'normal' deps and 'build' deps foo v0.2 (derive feature)
foo
for both normal builds and proc-macro buildsIt feels like the use of cargo-hakari
caused this situation, as without it, it would have been fine I guess? But adding a feature flag, shouldn't break downstream crates either 😿 so bleh
Imagine running "cargo update" without fear, knowing it could never break your Rust code. What would that look like, and what will it take to get there?
Find out in my RustWeek talk!
We just released Roto 0.6.0!
Roto is the JIT compiled, strongly-typed, embedded scripting language for Rust used by Rotonda.
This release features many fixes, quality of life improvements and - as a little treat - an assignment operator! Check it out here:
Aaaaaand even more... #justRustThings #rust #rustlang
Rust is Officially in the Linux Kernel
Apparently spawning a child process/app that outlives the parent (on Windows and Linux/MacOS) in #Rust is hard. Forking would work if it was cross platform.
If you know a good way to do this please share.
For now the best way seems to be to use a cross-platform #daemonization library (I think I found one), and then have the parent run a command to start the daemon.
Seems wildly over the top to have my CLI program start the server it wants to talk to if it isn't already running. 🤔 #RustLang
You’ll work with `pyo3`, learn how to handle Python’s GIL, and walk away ready to ship Rust where it matters most. Led by the author of Zero to Production in Rust, you won’t get lost.
Get the workshop details here ➡️ https://eurorust.eu/workshops/rust-python-interoperability/
@frankel and when strum is not enough there is the #xmacro crate (Note: I am its author) which has more flexibility at the cost of more verbose code.
https://docs.rs/xmacro_lib/0.5.1/xmacro_lib/index.html#table-definition
Simulations in the terminal with Rust & @ratatui_rs 😍🦀
🌀 **trmt** — 2D Turing Machine simulator for your terminal!
☘️ Supports extensive customization, real-time interaction & more!
⭐GitHub: https://github.com/cenonym/trmt
#rustlang #ratatui #tui #turmite #turing #simulation #2d #terminal #commandline
We just published all talks from RustWeek 2025 🦀 🌎
Clear your calendars: 25+ hours and 54 talks worth of amazing Rust content!
https://www.youtube.com/playlist?list=PL8Q1w7Ff68DCEXiGidlM0DMn8ztjlUlez
The rustdoc #![doc(test(attr(..)))]
attribute can now be used at every level and not just at crate level.
Documentation about this attribute is available here: https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr
#rustweek2025 conference recordings are out.
All RustWeek talks (54!) are now published!
https://youtube.com/playlist?list=PL8Q1w7Ff68DCEXiGidlM0DMn8ztjlUlez&si=B6jnR0SmTlmMRU-u
RUST TIP 🦀
Last week, we shared a Rust tip about an attribute that, when applied to functions or types, ensures their returned Result or Option is properly handled.
Let's move on to this week’s challenge.
Find Peaks and Valleys
At the ICANN83 DNSSEC And Security Workshop, we presented the flexible key management we have designed for our new #DNSSEC signing solution Nameshed. Philip explains how we avoid loading an unknown shared library into the signer process and how we keep track of state. #DNS #OpenSource #rustlang Slides: https://static.sched.com/hosted_files/icann83/09/2.5%20Homburg%20-%20Flexible%20Key%20Management%20in%20Nameshed.pdf?_gl=1*36t2bs*_gcl_au*MjAzNDMxMTY4MS4xNzQ5NDc3NDU4
#LiveCoding music jam writing #Rust in a #Jupyter notebook with my CAW #synthesizer library
code review 2/2
**You fell into the classic trap:** what started as "I just need to read some RabbitMQ config" became a full configuration management framework with separate crates for config, info, UI, components... The simple JSON parsing somehow spawned 6 workspace members. Classic config yak-shaving!